原生 <details> 标签默认具备无障碍支持,浏览器内置角色、键盘操作及状态播报,无需手动添加 aria-expanded;仅在模拟折叠面板等非原生场景下才需显式设置该属性并严格同步状态。
原生 `` 标签本身已具备良好的无障碍支持,屏幕阅读器能自动识别其展开/收起状态并播报。但若需自定义样式、增强语义或与 JavaScript 深度集成,配合 `aria-expanded` 属性可进一步提升兼容性与明确性——尤其在旧版读屏器或非标准实现中。
浏览器对 `` 的原生实现已内置角色(`role="group"`)、键盘支持(Enter/Space 切换)和状态反馈。`` 会被读作“标题,已折叠”或“标题,已展开”,无需额外 ARIA。
仅当脱离原生 `` 行为时才需干预,例如:
此时应在触发元素(如按钮或自定义 summary)上添加:
aria-expanded="true" 或 aria-expanded="false",并与实际 DOM 状态严格同步。
若坚持使用原生 ``,**不要**给 `` 添加 `aria-expanded` —— 这会造成冗余甚至冲突。浏览器可能忽略或覆盖该属性,反而干扰读屏体验。
<summary aria-expanded="false">常见问题</summary>
即使不用 `aria-expanded`,也可通过微小优化强化可访问性: