博客
打开菜单,关闭菜单——实用型无障碍导航用户界面指南打开菜单,关闭菜单 – 可访问导航 UI 实用指南">

打开菜单,关闭菜单 – 可访问导航 UI 实用指南

Irina Zhuravleva
由 
伊琳娜-朱拉夫列娃 
12 分钟阅读
博客
2025 年 12 月 15 日

从一个简单的、键盘友好的面板开始,该面板可按需显示内容。. 触发器必须是带有 aria-expanded、aria-controls 和可见焦点环的真实按钮;内容区域应具有 role=”region” 和用于链接的 id。打开时,关闭后将焦点移回触发器,并为屏幕阅读器提供简短的实时区域更新。.

保持结构浅显,避免深度嵌套;确保所有互动元素都有文本标签,并为重复控件提供跳过目标。使用CSS指示状态,但依靠ARIA属性向辅助技术传达状态。使用键盘、屏幕阅读器和颜色对比度检查进行测试;验证焦点顺序是否与视觉顺序匹配,以及在样式失效时操作是否仍然有效。.

In a 主题 例如,该场景唤起了 夜晚路易斯餐饮 空格和 雕像 看着一个 席卷 面板阵列. During february 活动, ,一定的 私人的 旅游团抵达;然后 其他 参与,和内容 包含 several 碎片 from a 木匠 工作坊,清单 日期 and a rare 集合 比彻 家庭用品,而一 损坏 链接需要修复。此叙述有助于明确重点,从而告知设计师在用户与显示/隐藏系统交互期间的状态变化。 夜晚 小时和 活动.

打开菜单,关闭菜单:以可访问性为中心的导航用户界面指南

打开菜单,关闭菜单:以可访问性为中心的导航用户界面指南

实现一个键盘优先的切换功能,该功能可以显示一个抽屉并捕获焦点(在可见时);通过键盘和鼠标操作,触发器带有标签,并且 aria-expanded 属性在任何情况下都反映状态。.

使用文本或无障碍替代方案标记控件; 您的用户应该知道元素获得焦点时的操作。.

主题应感觉自然而务实,灵感来自具有大理石走廊和壁画的豪宅,但它必须适用于塔楼、房屋和私人区域。.

使其在五个核心路径和各种设备上可用;除具有特殊限制的页面外,每次访问保持行为一致。.

焦点管理:关闭时,直接将焦点返回切换开关;如果用户浏览帖子,确保返回时焦点落在触发器上。.

内部团队在五个帖子上的引导测试确认了基于数量的稳定项目顺序;包括快速检查键盘和屏幕阅读器的兼容性。.

设计节奏:将项目列表视为车站里的一系列火车——按顺序排列、可预测,且易于追踪卷的到达。.

最佳实践使用设计的语义和构造的标记:按主题分组,保持条目简短,避免深度嵌套。.

纸质指南和私有文档解释了如何操作此功能;确保直接反馈和透明的状态指示器。.

不久后,审计应衡量建筑物和探访之间的一致性;从而建立一个连贯的模式,使其更容易直接维护。.

方面 Implementation 基本原理
焦点行为 在抽屉可见时锁定焦点;隐藏时恢复到触发器 保持键盘用户的方向。
标签 清晰可见的标签;为非文本标签提供 aria-label 辅助技术理解行为
状态反馈 aria-expanded 反映当前状态;尊重减少动态偏好设置 可靠的线索和包容性
一致性 稳定触发位置;五种布局下物品顺序一致 降低认知负荷
内容组织 将链接按标题分组;组别限制在第五卷到第七卷 更易于扫描
隐私权 默认情况下避免泄露私有部分;为敏感页面提供退出选项 隐私与控制

触发机制:键盘可访问的打开/关闭、ARIA-Expanded 和焦点环行为

建议:实现一个键盘友好的单一切换按钮,通过 aria-expanded 和 aria-controls 显示或隐藏面板,并具有持久的焦点环和 Enter/Space 激活功能。Escape 键将焦点返回到触发器并隐藏面板;确保面板已标记,并且其内容在隐藏时保持不可聚焦。.

  1. 语义:使用真实的 button 元素或 role=”button”,并使用 aria-expanded=”true|false” 和 aria-controls 引用面板的 ID;更新可访问标签以反映屏幕阅读器的状态。.
  2. 键盘:启用 Tab 键到达触发器,回车/空格键切换,以及 Esc 键折叠;展开时将焦点锁定在面板内,并在折叠时将焦点返回到触发器。.
  3. 对焦环:通过 :focus-visible 应用可见的对焦指示器,保持清晰的轮廓或高对比度替代方案,避免在用户使用键盘导航时移除它。.
  4. 运动和持续时间:默认情况下,保持展开持续时间在 120–180 毫秒左右,遵循 prefers-reduced-motion 设置,并且为了获得更流畅的反馈,优先选择基于变换的过渡,而不是高度过渡。.
  5. ARIA 状态管理:与面板的可见性同步切换 aria-expanded;在折叠时设置 aria-hidden=”true”;确保 aria-controls 指向辅助技术的正确区域。.

灵感与设计注释

焦点管理:在菜单内保持焦点并在关闭时恢复焦点

从严格的焦点陷阱开始,将焦点保持在活动面板内,直到用户通过明确标记的操作将其关闭。第一个可聚焦元素应该是面板内的主要控件,最后一个可聚焦元素应该循环回到该入口点。没有捷径可以绕过此操作。Francesco 指出,这种方法基于键盘流测试的知识,对于视觉提示有困难或行动不便的用户来说,交互非常舒适,并有助于保持面板内的内容可预测。.

在序列末尾实现一个离散的、非可视化的捕获器,将 Tab 键重定向回第一个元素,并确保 Shift+Tab 键在反方向上正确循环。使用计算方法来建立一个强大的 Tab 键顺序,并验证在面板处于活动状态时焦点不会逸出到页面的其余部分。包含诸如 aria-modal 之类的语义,以表示临时的、自包含的体验,并确保焦点恢复操作将焦点返回到打开器或其最近的备用锚点。.

解除后,将焦点恢复到打开面板的初始元素;如果找不到该元素,则将焦点返回到主内容中的下一个逻辑锚点。跨浏览器和仅使用键盘的操作流程进行测试,衡量移动焦点所需的时间,并确认没有不可预测的跳转。在过渡期间保持短暂、可见的焦点指示器,以使用户放心。.

источник 为图书馆、画廊和展览馆等机构提供了一个实用的参考,这些机构的布局中会出现塔、栏杆和雕塑。如果注意力分散,世界就会静止,所以设计必须是开放和可预测的。在弗朗西斯科团队的测试中,该方法给参与者留下了深刻的印象,并承认提高了任务成功率。该方法符合天文般的精度:一致的焦点目标、清晰的提示和强大的计算能力,帮助所有能力的用户都能自信地导航;并且它可能成为长时间会话和高对比度界面的高标准。.

状态公告:屏幕阅读器菜单打开/关闭提醒,不中断内容

建议:在操作面板的控件附近实现一个专用的实时区域;确保它使用 aria-live=”polite”、aria-atomic=”false” 和 aria-relevant=”additions text”,以便在不中断主要内容的情况下宣布状态更改。.

消息应简洁:面板已展开或面板已折叠,真正两到四个字,且高于内容阅读顺序。.

将状态区域置于 DOM 顺序中主要内容上方,并保持控制键盘可访问;当区域开启时,将焦点返回到触发器以保留上下文。.

历史范例:维多利亚风格的侧厅采用古董玻璃、圆形栏杆和一个膳堂庭院;内部布局决定了警报如何与用户任务对齐;建筑师可以在设计中考虑这一点,以支持可预测的提示。.

希望最大限度地降低风险,因此使用自然语言;避免使用术语,并保持冷静和中立的语气。.

rebecca 建议按州而不是按操作命名消息;joseph 用一个待办事项清单测试了这个方法,因为清晰度很重要,并且可以帮助依赖辅助技术的用户。.

另一种罕见的情况发生在访问包含气象数据或实时信息流的页面时;在这些时刻,提供一个稳定的通道来声明状态,而不会与内容发生冲突。.

现有工具支持跨浏览器兼容性;确保更改在各种设备上均可访问,并且对该区域的访问仍然简单;考虑使用“圣诞老人”测试角色来验证可读性。.

实施指标包括延迟、消息长度和跳过率;目标是全面覆盖,并具有自然的节奏,以减少认知负荷,避免扰乱阅读流程。.

补充说明:使用类似裙摆的屏幕外区域,以保持该区域在视觉上的隐蔽性,同时保持辅助技术的可检测性;考虑使用易于通过键盘和触摸屏访问的杆状触发控件。.

语义结构:多节菜单的正确地标、角色和标签

建议:为节的集合采用树状结构。容器应带有 role=”tree” 和 aria-label=”Section tree”;每个标题都变为 role=”treeitem”,并根据需要带有 aria-expanded 和 aria-selected 状态。为每个项目使用唯一的代码,并保持其顺序的一致度量。安装该模式并使用屏幕阅读器进行测试,以便用户可以按级别导航、进入更深的节点,并在保留上下文的情况下稍后恢复。.

标签和地标:为每个区域分配清晰、唯一的标签,将标题与 ID 配对,并通过 aria-labelledby 引用它们。确保标签旨在快速识别,并为未来添加内容预留空间,而无需更改现有名称。如果以后添加新区域,请重复使用相同的标签方案,以避免混淆。在场所内部,将每个部分映射到不同的标题,以便访客可以一目了然地找到正确的位置。.

结构与内容:嵌套树形项目以用于子节,从而支持多层布局,并保持一致的层级结构。如果标题带有装饰性样式,则应保持文本标签的简洁,以便辅助技术能够正常工作。在科罗拉多州的子树中,您可能会看到视觉上应用的巴洛克风格;标签本身应保持真实,确保通过门进入并平稳地进入,而不会丢失上下文。这种方法有助于维护易于浏览且不会因装饰而误读的信息墙。.

状态管理和测试:衡量焦点顺序,并确保回车或空格等操作能够可靠地展开或激活项目。如果某个区域被预订或尚未开放购买,请将其标记为 aria-disabled,并提供可见的提示,以便用户知晓当前无法进入。稍后,调整标签以反映更新,例如新开放的区域,并确保它们在整个场所内保持一致。得益于清晰独特的结构,无论是普通访客还是有辅助需求的人士,都能体验到一条直接明了的参观路线。.

夜间模式辅助功能:夜间对比度、动态偏好设置和菜单交互的视觉提示

建议:实施一套系统驱动的夜间调色板,确保正文至少达到 4.5:1 的对比度,互动控件至少达到 3:1 的对比度,即使在带有图案的背景上也是如此。使用 #111–#1a1a1a 左右的中性底色和符合这些规则的强调色来突出主要元素;确保标签和控件在长时间使用网站时保持清晰可读。Becky 和其他设计师的观察,以及克莱门蒂努姆等大学设施的测试,为这项建议提供了依据并推动了具体的设计。11 月的检查始终显示跨设备的稳定可读性。.

动效:当用户系统发出降低动效信号时,禁用非必要的动画效果,并将过渡效果保持在 150 毫秒以下;用快速、离散的更改代替长时间的淡入淡出效果;对于提示和状态更新,请使用颜色和文本标签,而不是滑动面板。这种方法可以减轻认知负担,并帮助客户保持对内容的参与度。.

视觉提示:确保焦点指示器在浅色和图案背景上都可见。使用 2px 的亮色轮廓,使其与周围表面形成对比;搭配图标和文本标签,以避免信号依赖于颜色。安装的横幅或工具提示应出现在稳定的位置;避免内容移动,以免使用户迷失方向。.

键盘和屏幕阅读器支持:保持相关控件之间的逻辑顺序;提供描述性 ARIA 标签;确保打开状态的提示保持足够长时间以被感知;避免在快速任务期间丢失上下文的自动隐藏,这可以在各部分之间重复模式时保持注意力。.

测试与观察:使用 WebAIM 运行对比度检查,验证普通文本为 4.5:1,UI 组件为 3:1;在具有不同亮度的设备上以及在实际环境中(如沙龙或咖啡店,顾客依赖快速提示)进行测试。学习小组中 stiners 的观察表明,状态之间的持久信号有助于识别;包括谁的设备和图案化标题,并确保电子票流程保持可访问性。目标是减少眩光和疲劳等问题,这些问题会减慢用户速度,并随着时间的推移而节省资金。.

经济效益和影响:强大的夜间模式可以减轻眼睛疲劳,并延长会话时间,从而为客户和网站带来价值。清晰的令牌、可预测的更改和简单的切换最大限度地减少了开发工作量,并有助于当前的营销活动运作,而无需进行重大修改。在11月的测试和实际应用中,这种方法有助于那些希望更快访问内容而不牺牲清晰度的人,例如星巴克客户,他们重视快速阅读和简单操作。.

实施说明:记录一个调色板系统,其中 CSS 变量用于背景 (–bg)、表面 (–surface)、文本 (–text) 和焦点 (–focus)。支持 prefers-color-scheme: dark 和 prefers-reduced-motion: reduce,并为旧设备提供合理的后备方案。保持排版的可读性,确保设计适用于胶合板和木材色调的纹理(如果存在图案),并与提到克莱门蒂努姆、大学和前品牌背景的真实用户一起测试。这些图案应保持稳定,而不是在脚下移动,并应在所有页面上保持可访问性。.

操作提示:在受控的一组页面中开始推广,并收集来自 Becky 和其他用户的观察结果;然后扩展到主要部分。这开启了一个稳步循环,指南针北部旨在平衡舒适性和清晰度,谨慎行事以避免闪烁。在十一月的窗口期,随着网站的增长,该方法应解决那些与胶合板表面的眩光和带图案的标题相关的棘手问题,确保电子客票流程对所有用户保持简单,包括那些设备运行在较旧硬件上的用户。.