Bitwarden 贡献文档
⮐ Bitwarden Contributing Documentation我的博客联系我
  • 关于
  • 入门
    • 概述
    • 工具
    • 服务器
      • 设置指南
      • 高级服务器设置
      • 数据库
        • MSSQL
        • 实体框架
      • 事件日志
      • Ingress 隧道
      • SCIM
      • 自托管指南
      • 系统管理门户
      • 单点登录 (SSO)
        • 本地 IdP
        • Okta
      • 故障排除
      • 用户机密
      • 公共 API
    • 网页客户端
      • 网页密码库
        • WebAuthn
      • 浏览器端
        • 生物识别解锁
        • Firefox 隐私模式
      • 桌面端
        • Mac App Store Dev
        • Microsoft Store
        • Native Messaging Test Runner
        • 更新测试
      • CLI
      • 故障排除
    • 移动端
      • Android
        • F-Droid
      • iOS
      • .NET MAUI (legacy)
        • Android
        • iOS
        • watchOS
    • SDK
      • 内部 SDK
      • Secrets Manager
        • Integrations
          • Kubernetes
    • 业务 App
      • 目录连接器
        • JumpCloud
        • OpenLDAP Docker 服务器
      • Key Connector
      • Splunk App
  • 贡献
    • 贡献
    • 代码样式
      • =Android & Kotlin
      • Angular & TypeScript
      • C#
      • =Rust
      • T-SQL
      • =Swift
      • Tailwind
    • 数据库迁移
      • 进化数据库设计
    • 提交签名
    • 拉取请求
      • =贡献审查程序
      • 分支
      • 代码审查
      • UI 审查 - Chromatic
    • 无障碍
    • 依赖管理
    • 功能标记
    • 模板存储库
    • 测试
      • =数据库集成测试
      • 负载测试
      • 单元测试
        • 命名约定
        • 测试结构
    • 修改用户机密
  • 架构
    • 架构
    • 架构决策记录 (ADR)
      • 0001 - Angular Reactive Forms
      • 0002 - Public API for modules
      • 0003 - Adopt Observable Data Services for Angular
      • 0004 - Refactor State Service
      • 0005 - Refactor Api Service
      • 0006 - Clients: Use Jest Mocks
      • 0007 - Manifest V3 sync Observables
      • 0008 - Server: Adopt CQRS
      • 0009 - Composition over inheritance
      • 0010 - Angular Modules
      • 0011 - Scalable Angular Clients folder structure
      • 0012 - Angular Filename convention
      • 0013 - Avoid layered folder structure for request/response models
      • 0014 - Adopt Typescript Strict flag
      • 0015 - Short Lived Browser Services
      • 0016 - Move Decryption and Encryption to Views
      • 0017 - Use Swift to build watchOS app
      • 0018 - Feature management
      • 0019 - Adoption of Web Push
      • 0020 - Observability with OpenTelemetry
      • 0021 - Logging to Standard Output
      • =0022 - Authorization
      • =0023 - Identifying Integrated Clients
    • 移动客户端架构
      • =Android
      • =iOS
        • =推送通知故障排除提示
      • =.NET MAUI (legacy)
        • =概述
        • watchOS
    • =SDK 架构
      • =数据模型
      • =依赖
      • Password Manager
        • Web
          • =互操作性
      • =Secrets Manager
      • =服务器绑定
      • =版本控制和破坏性更改
    • 网络客户端架构
      • 概述
      • 数据模型
      • 表示层
        • Angular
        • CLI
      • =依赖注入
      • 服务层
        • Vision
        • 实现
    • 服务器架构
    • 深度剖析
      • 身份验证
        • 双重身份验证
      • =授权
      • =浏览器自动填充
        • 收集页面详细信息
        • 生成并执行填充脚本
        • 表单提交检测
        • Shadow DOM
        • =内联自动填充菜单
      • Captcha
      • =只读数据库副本
      • 事件日志
      • =FIDO2 和通行密钥
        • =凭据
        • =操作
        • =命名惯例
        • =实现
          • =提供程序
            • =浏览器扩展
          • =依赖方
            • =用于解密的通行密钥
        • =术语表
      • 推送通知
        • 移动端推送通知
        • 其他客户端推送通知
      • =SSH 密钥和代理
        • =SSH 代理
      • =状态提供程序框架
        • =派生状态
    • =安全
      • =定义
      • =原则
        • =P01 - 锁定的密码库是安全的
        • =P02 - 半受损设备密码库的有限安全性
        • =P03 - 完全损坏的系统没有安全性
        • =P04 - 控制密码库数据的访问权限
        • =P05 - 将安全漏洞的影响降至最低
      • =要求
由 GitBook 提供支持
在本页
  • 视觉呈现
  • 键盘导航
  • 屏幕阅读器
  • 语义结构
  1. 贡献

无障碍

上一页UI 审查 - Chromatic下一页依赖管理

最后更新于3个月前

对应的

Bitwarden 严格遵守 。以下介绍了在实现功能和内容时应考虑的无障碍的常见方面。此列表并不全面,但它提供了一个起点,让您了解可能会限制无障碍新功能的常见「陷阱」。有关无障碍的全面指南,请访问 。

有关 Bitwarden 无障碍的其他资源可以在 上找到。

视觉呈现

WCAG 成功规范
描述

Bitwarden 设计最佳实践:交互式元素应始终可见,用户无需悬停或聚焦该元素。这样可以使内容更容易被发现,从而便于用户访问,同时也消除了为满足 WCAG 标准而实施这种模式所需的复杂性。

Bitwarden 设计最佳实践:所有交互式元素都应具有可见焦点、悬停状态和正确的光标样式。

Bitwarden 设计最佳实践:缩短的图标和文本应始终带有 title 属性,以提供额外的上下文。

键盘导航

WCAG 成功规范
描述

页面上的所有鼠标交互元素都应可通过键盘导航访问。

如果打开了弹出窗口(尤其是多个对话框),请务必测试焦点是否能正确进出每个对话框,以及是否存在键盘陷阱。

每个交互式元素都应有一个可见的焦点指示器,以帮助用户通过键盘导航页面。

屏幕阅读器

弱视或失明用户通常会使用键盘导航和屏幕阅读器来浏览产品。这将导致页面内容的语音朗读,通常还会根据关注的语义元素提供额外的指导。

要进一步了解屏幕阅读器和键盘导航,请在 macOS 上打开 或在 Windows 上下载 ,并尝试使用键盘和屏幕阅读器导航设备。

WCAG 成功规范
描述

对于传递其他地方未提供的信息的任何非文本元素,请使用 alt-text 或 aria-labels 标记。如果元素不具有信息性,则可标记为 decorative。

确保相关内容一起呈现,并可通过编程确定。 使用 aria-describedby 将一个元素中的内容与另一个元素关联起来。这通常用于表单错误或辅助文本。

在展开或折叠的元素上使用 aria-expanded 可显示或隐藏更多信息。注意:aria-haspopup 和 aria-expanded 不应同时用于同一元素。菜单默认使用 aria-haspopup,手风琴或其他显示/隐藏切换器等交互方式则使用 aria-expanded 。

有时,页面上的交互会触发附加内容的添加或更改。例如:点击 「发送验证码」按钮会触发一条确认信息。通过屏幕阅读器公布这些内容非常重要。这可以通过 aria-live 区域或使用 role=alert 属性来实现。

语义结构

确保在每个页面上使用适当的语义结构。用于创建页面的元素可为屏幕阅读器提供更多上下文信息,使其了解该元素包含的内容类型。正确使用地标和标题,还能让用户仅通过地标或标题级别来浏览页面,而不必总是以标签方式浏览整个页面的内容。

WCAG 成功规范
描述

在每个页面的 html 元素中加入 lang 属性。

使用一个 title 元素和一个 h1 在每个页面上显示标题。

用与内容目的相匹配的、具有语义意义的元素来包装内容。注意:div 和 span 没有语义意义,因此最好避免使用它们来包转文本。取而代之的是使用 p 元素。

标题层次使用逻辑顺序。h4 不应出现在第一个 h3 元素之前。此外,不要跳过标题层,应使用下一个降序标题来创建结构。

使用地标区域传达预期内容;确保在页面导航周围包含 nav 元素,在页面内容周围包含 main 元素。

使用 a 元素和 hrefs 作为链接;当用户导航到新页面时使用链接。

使用 button 元素提交数据或执行不移动键盘焦点的屏幕操作。

使用适当的表单语义,每个输入都有相应的 label 元素,并在适用时使用 fieldset 元素。

内容的对比度应达到或超过 WCAG AA 准则: - 对于普通文本:4.5:1 - 大型文本和图形:3:1 - 使用 了解更多信息 - 使用组件库中的变量时, text-main 变量会在 background 和 background-alt 变量上进行测试。所有其他背景一般使用 text-contrast

在触发菜单或对话框等其他元素的元素上使用 aria-haspopup。这将告诉屏幕阅读器(以及用户),另一个元素正在打开,并将有额外的操作。更多信息,请参阅 。

当标签页、表格行或网格单元格等多个元素可被选中或取消选中时,请使用 aria-selected。更多信息,请参阅 。

大多数 HTML 元素都已分配了角色。但在某些情况下,您可能需要指定元素的角色。有关角色的更多信息,请参阅 。大多数 Bitwarden 组件库组件都已应用了适用的角色。但在某些情况下,如果您需要创建一个新的组件,则应考虑元素的角色。

官方页面地址
WCAG AA 要求
WCAG 官方网站
Confluence
VoiceOver
NVDA
1.4.3 Contrast minimum
1.4.11 Non-text contrast
WebAIM contrast checker
1.4.13 Content on Hover of focus
2.4.7 Focus visible
2.1.1 Keyboard
2.1.1 Keyboard
2.1.2 No keyboard trap
2.4.7 Focus visible
1.1 Text alternatives
1.3.1 Info and relationships
1.3.2 Meaningful sequence
3.3.1 Error identification
3.3.2 Labels or instructions
4.1.2 Name, role, value
aria-haspopup - Accessibility MDN
4.1.2 Name, role, value
4.1.2 Name, role, value
WAI-ARIA Roles - Accessibility MDN
4.1.2 Name, role, value
WAI-ARIA Roles - Accessibility MDN
4.1.3 Status messages
3.1.1 Language of page
2.4.2 Page titled
1.3.1 Info and relationships
1.3.1 Info and relationships
1.3.1 Info and relationships
1.3.1 Info and relationships
1.3.1 Info and relationships
3.3.2 Labels or instructions