手风琴折叠时,是否需为面板添加aria-hidden='true'属性?
在手风琴组件中,给折叠状态的面板添加aria-hidden='true'属于更优的无障碍实现方案,原因如下:
- 兼容性冗余保障:虽然W3C手风琴规范要求在header元素上用
aria-expanded标识展开/折叠状态,这已经能给大部分现代辅助技术传递状态信息,但添加aria-hidden='true'可以覆盖部分老旧屏幕阅读器的识别逻辑,避免状态传达不明确的情况。 - 消除隐藏方式的歧义:如果面板是通过
display: none这类会自动从无障碍树移除内容的CSS方式隐藏,现代浏览器会自动处理;但如果用的是height: 0+overflow: hidden、visibility: hidden这类视觉隐藏但仍可能留在无障碍树的方法,aria-hidden='true'能明确告诉辅助技术“此内容当前不可访问”,避免误导用户。 - 符合无障碍语义逻辑:
aria-hidden的核心作用就是标记当前不可见、不可交互的内容,手风琴折叠面板完全匹配这个使用场景,即使Mozilla的文档未单独列出该场景,添加它也能让页面的无障碍语义更完整严谨。
需要注意的是,要保证状态同步:当面板展开时,需将aria-hidden设为false或直接移除,同时对应header的aria-expanded设为true,两者状态必须一致。
内容的提问来源于stack exchange,提问作者Will Squire
相关产品推荐
相关产品推荐

