Django 项目致力于确保使用 Django 构建的网站对所有人(包括残障人士)都可访问。Django 的内置组件(例如管理界面和默认表单渲染)应遵循既定的可访问性标准,并满足我们自身对支持特定输入设备和辅助技术的要求。
我们致力于遵循 《Web 内容可访问性指南》`_(WCAG)2.2 版本的 AA 级别标准。WCAG 是网络可访问性领域最成熟的标准,`AA 级别指南 是全球最常见的法律合规目标。
我们还致力于遵循其他最佳实践,例如:
WCAG 2.2 AAA 级别指南 —— 这是比 AA 级别更严格的标准。
即将发布的 WCAG 3.0 指南 —— 这是一个旨在统一和改进先前 WCAG 版本的新兴标准。
`创作工具可访问性指南`_(ATAG)2.0 —— 适用于用于生产网络内容的软件和服务的指南。
若想在不直接深入研究标准的情况下了解可访问性,我们推荐 The A11Y Project,这是一个旨在让数字可访问性更易实现的社区驱动项目。
除标准外,我们希望确保 Django 能够切实服务于使用各种输入设备和辅助技术的用户。这也有助于让 Django 为所有人 提供更好的体验。实现这一目标最有效的方法是将可访问性考量纳入功能设计环节。如有疑问,请咨询依赖辅助技术的用户或可访问性专家。你可以通过 Django 论坛的可访问性主题 或 Django Discord 服务器 的 #accessibility 频道联系 可访问性团队。
设计 UI 时充分考虑可访问性,测试将仅作为最终检查环节。对于更复杂的界面,请与其他贡献者商讨确定测试目标。如需支持或协调测试,请联系 可访问性团队。
始终通过以下方式测试用户界面变更:
仅键盘导航。常见问题包括:
使用 Tab 键或方向键无法访问交互元素。
交互元素“锁定”输入焦点,导致无法导航离开。
交互元素在获得输入焦点时未提供视觉指示。
焦点顺序与视觉传达的逻辑顺序不一致。
使用 Accessibility Insights 浏览器扩展的自动检查功能,或具备 Axe 检查器的等效工具。
如果 UI 变更可能影响以下交互方式,也需进行测试:
仅触摸导航。常见问题包括:
触摸目标(交互元素)尺寸过小。
Hover-based interaction that does not translate to touch, such as a hover-only tooltip.
400% 浏览器缩放。常见问题包括:
缩放时内容被截断或消失。
内容本质上无需二维布局,却导致垂直和水平双向滚动。对于图像、地图、视频和数据表格等内容,因需要两个维度来确保可用性,二维滚动是可接受的。
强制色彩模式(例如 Windows 对比度主题)。注意,可通过 截图测试 中的 "high_contrast" 模式进行测试。常见问题包括:
过度依赖颜色传达含义,在强制色彩模式下会丢失信息。
使用 !important 或内联样式可能会破坏强制色彩模式。
若 UI 变更可能影响辅助技术,我们推荐测试以下常用的免费选项。
对于 Windows:
NVDA —— 推荐搭配 Firefox ESR 使用
Narrator —— 推荐搭配 Microsoft Edge 使用
Windows Magnifier
Windows Speech Recognition
对于 macOS:
VoiceOver —— 推荐搭配 Safari 使用
macOS Zoom
macOS Voice Control
对于 Linux:
Orca —— 推荐搭配 Firefox ESR 使用
针对移动设备或平板电脑:
iOS 的 VoiceOver,或 Android 的 TalkBack
以下是常用的授权选项。如果你是这些软件的用户,或能与持有许可的用户协作,也建议进行测试:
Django 的某些部分尚未达到我们的可访问性目标。我们正积极修复问题,既包括持续维护,也包含重大改进。若想了解已知问题并参与贡献,请参阅:
Django Discord服务器 上的 #accessibility 频道。
我们的 django accessibility improvements 项目看板。
8月 05, 2026