---
title: "可访问性"
version: 6.0
locale: zh-hans
source: https://docs.djangoproject.com/zh-hans/6.0/internals/contributing/accessibility/
canonical: https://djangodocs.dev/zh-hans/6.0/internals/contributing/accessibility/
---
# 可访问性

Django 项目致力于确保使用 Django 构建的网站对所有人（包括残障人士）都可访问。Django 的内置组件（例如管理界面和默认表单渲染）应遵循既定的可访问性标准，并满足我们自身对支持特定输入设备和辅助技术的要求。

## 可访问性标准

我们致力于遵循 [《Web 内容可访问性指南》\`\_（WCAG）2.2 版本的 AA 级别标准。WCAG 是网络可访问性领域最成熟的标准，\`AA 级别指南](https://www.w3.org/TR/WCAG22/) 是全球最常见的法律合规目标。

我们还致力于遵循其他最佳实践，例如：

- WCAG 2.2 [AAA 级别指南](https://www.w3.org/WAI/WCAG22/quickref/?currentsidebar=%23col_overview&levels=a%2Caa) —— 这是比 AA 级别更严格的标准。
- 即将发布的 [WCAG 3.0](https://www.w3.org/TR/wcag-3.0/) 指南 —— 这是一个旨在统一和改进先前 WCAG 版本的新兴标准。
- 创作工具可访问性指南\`\_（ATAG）2.0 —— 适用于用于生产网络内容的软件和服务的指南。

若想在不直接深入研究标准的情况下了解可访问性，我们推荐 [The A11Y Project](https://www.a11yproject.com/)，这是一个旨在让数字可访问性更易实现的社区驱动项目。

## 支持目标与测试

除标准外，我们希望确保 Django 能够切实服务于使用各种输入设备和辅助技术的用户。这也有助于让 Django [为所有人](https://en.wikipedia.org/wiki/Curb_cut_effect) 提供更好的体验。实现这一目标最有效的方法是将可访问性考量纳入功能设计环节。如有疑问，请咨询依赖辅助技术的用户或可访问性专家。你可以通过 [Django 论坛的可访问性主题](https://chat.djangoproject.com) 或 [Django Discord 服务器](https://forum.djangoproject.com/c/internals/accessibility/26) 的 `#accessibility` 频道联系 [可访问性团队](https://www.djangoproject.com/foundation/teams/#accessibility-team)。

### 测试基准

设计 UI 时充分考虑可访问性，测试将仅作为最终检查环节。对于更复杂的界面，请与其他贡献者商讨确定测试目标。如需支持或协调测试，请联系 [可访问性团队](https://www.djangoproject.com/foundation/teams/#accessibility-team)。

始终通过以下方式测试用户界面变更：

- 仅键盘导航。常见问题包括：

  - 使用 Tab 键或方向键无法访问交互元素。
  - 交互元素“锁定”输入焦点，导致无法导航离开。
  - 交互元素在获得输入焦点时未提供视觉指示。
  - 焦点顺序与视觉传达的逻辑顺序不一致。
- 使用 [Accessibility Insights](https://accessibilityinsights.io/) 浏览器扩展的自动检查功能，或具备 [Axe](https://github.com/dequelabs/axe-core) 检查器的等效工具。

如果 UI 变更可能影响以下交互方式，也需进行测试：

- 仅触摸导航。常见问题包括：

  - 触摸目标（交互元素）尺寸过小。
  - 基于悬停的交互无法在触摸设备上实现，例如仅悬停显示的提示框。
- 400% 浏览器缩放。常见问题包括：

  - 缩放时内容被截断或消失。
  - 内容本质上无需二维布局，却导致垂直和水平双向滚动。对于图像、地图、视频和数据表格等内容，因需要两个维度来确保可用性，二维滚动是可接受的。
- 强制色彩模式（例如 Windows 对比度主题）。注意，可通过 [截图测试](/zh-hans/6.0/internals/contributing/writing-code/unit-tests/#screenshot-tests) 中的 `"high_contrast"` 模式进行测试。常见问题包括：

  - 过度依赖颜色传达含义，在强制色彩模式下会丢失信息。
  - 使用 `!important` 或内联样式可能会破坏强制色彩模式。

### 推荐的辅助技术

若 UI 变更可能影响辅助技术，我们推荐测试以下常用的免费选项。

对于 Windows：

- [NVDA](https://www.nvaccess.org/) —— 推荐搭配 Firefox ESR 使用
- [Narrator](https://support.microsoft.com/en-us/windows/complete-guide-to-narrator-e4397a0d-ef4f-b386-d8ae-c172f109bdb1) —— 推荐搭配 Microsoft Edge 使用
- Windows Magnifier
- Windows Speech Recognition
- [Contrast themes](https://support.microsoft.com/en-us/windows/change-color-contrast-in-windows-fedc744c-90ac-69df-aed5-c8a90125e696)

对于 macOS：

- [VoiceOver](https://support.apple.com/en-gb/guide/voiceover-guide/welcome/web) —— 推荐搭配 Safari 使用
- macOS Zoom
- macOS Voice Control

对于 Linux：

- [Orca](https://help.gnome.org/users/orca/stable/) —— 推荐搭配 Firefox ESR 使用

针对移动设备或平板电脑：

- iOS 的 VoiceOver，或 Android 的 TalkBack

以下是常用的授权选项。如果你是这些软件的用户，或能与持有许可的用户协作，也建议进行测试：

- Windows 上的 [JAWS](https://www.freedomscientific.com/products/software/jaws/)
- Windows 上的 [Dragon](https://www.nuance.com/en-gb/dragon.html)

## 已知问题及协助方式

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

- [Django Discord服务器](https://chat.djangoproject.com) 上的 `#accessibility` 频道。
- [Django 论坛的可访问性话题](https://forum.djangoproject.com/c/internals/accessibility/26)。
- [工单系统中的可访问性问题](https://code.djangoproject.com/query?status=!closed&keywords=~accessibility)。
- 我们的 [django accessibility improvements](https://github.com/orgs/django/projects/7) 项目看板。
- [可访问性团队](https://www.djangoproject.com/foundation/teams/#accessibility-team)。
