可访问性

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 或内联样式可能会破坏强制色彩模式。

已知问题及协助方式

Django 的某些部分尚未达到我们的可访问性目标。我们正积极修复问题,既包括持续维护,也包含重大改进。若想了解已知问题并参与贡献,请参阅: