在实现折叠面板(Accordion)组件时,需严格遵循 WAI-ARIA 规范以平衡语义 HTML 与辅助技术兼容性。根据 W3C ARIA 作者实践指南(APG)的示例代码,构建此类组件应优先使用语义化元素:用 h3 标签作为标题以维持页面文档大纲结构;在 h3 内部嵌套 button 元素作为交互触发器,并通过 aria-expanded 属性明确标识面板展开或折叠状态(true 为展开,false 为折叠)。同时,button 需设置 aria-controls 属性指向其控制的内容面板 ID。

内容区域建议使用 div 元素并赋予 region 角色,利用 aria-labelledby 引用对应的 button 标题,确保屏幕阅读器能准确识别该区域名称及关联关系。键盘导航方面,当焦点位于已折叠的 accordion header 时,按空格键或回车键可展开面板;Tab 键和 Shift+Tab 键则用于在组件内的所有可聚焦元素间顺序移动,保证遍历逻辑符合用户预期。

需注意,该示例代码仅用于演示 ARIA 用法,并非生产环境推荐方案。实际部署前,务必结合具体浏览器与辅助技术组合进行测试,以规避潜在支持缺口。此外,应牢记‘无 ARIA 优于坏 ARIA'的原则,仅在必要时引入 ARIA 属性,避免过度标记导致语义混乱或兼容性问题。

信息来源