<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>HTML语义化 | 锤子前端</title><description>Now vibe coding, so learning hammer FE ?</description><link>https://channel.meo-ai.com</link><item><title>《别在 div 和 span 上乱加 aria-label》</title><link>https://channel.meo-ai.com/posts/649</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/649</guid><pubDate>Sat, 30 May 2026 00:06:23 GMT</pubDate><content:encoded>&lt;span class=&quot;post-title-source&quot;&gt;《别在 div 和 span 上乱加 aria-label》&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;标签：&lt;a href=&quot;/search/result?q=%23%E5%89%8D%E7%AB%AF&quot; title=&quot;#前端&quot;&gt;#前端&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23Web%E6%97%A0%E9%9A%9C%E7%A2%8D&quot; title=&quot;#Web无障碍&quot;&gt;#Web无障碍&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23ARIA&quot; title=&quot;#ARIA&quot;&gt;#ARIA&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%B1%8F%E5%B9%95%E9%98%85%E8%AF%BB%E5%99%A8&quot; title=&quot;#屏幕阅读器&quot;&gt;#屏幕阅读器&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23HTML%E8%AF%AD%E4%B9%89%E5%8C%96&quot; title=&quot;#HTML语义化&quot;&gt;#HTML语义化&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;总结：&lt;br /&gt;本文通过实测数据揭示了在 div、span 等 generic 角色元素上使用 aria-label 的严重兼容性问题。ARIA 规范明确禁止为 generic 角色命名，而各屏幕阅读器的表现更是天差地别——有的只读标签、有的只读内容、有的两者都读、有的干脆忽略。这种不一致会让依赖辅助技术的用户获得错误信息，属于典型的&quot;好心办坏事&quot;。作者指出 section 和 popover 是例外，前者加标签会自动升级为 region 地标，后者角色会变为 group。&lt;br /&gt;&lt;br /&gt;文章要点：&lt;br /&gt;1. ARIA 规范 &lt;a href=&quot;http://5.2.8.6/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;5.2.8.6&quot;&gt;5.2.8.6&lt;/a&gt; 明确把 generic 角色列入&quot;禁止命名&quot;清单，div 和 span 默认就是这个角色&lt;br /&gt;2. 实测 8 组屏幕阅读器+浏览器组合，对带 aria-label 的 div  announcement 结果五花八门：VoiceOver 读&quot;News, group&quot;、TalkBack 只读&quot;News&quot;、JAWS/NVDA 完全忽略标签只读内容&lt;br /&gt;3. 空 div 的测试结果更混乱，有的读&quot;News, empty group&quot;、有的完全静默，无法预测用户会听到什么&lt;br /&gt;4. 这种不可预测性对屏幕阅读器用户是灾难性的——你以为在帮忙标注，实际上可能覆盖了真正有用的内容&lt;br /&gt;5. 例外情况：section 元素加 aria-label 会自动从 generic 升级为 region 地标，这是规范允许的；带 popover 属性的 div 角色会变为 group，加标签也合法&lt;br /&gt;6. 正确做法：需要可访问名称时，优先使用语义化标签（如 button、nav）或显式设置 role，而不是在裸 div 上硬塞 aria-label&lt;br /&gt;&lt;br /&gt;URL：&lt;a href=&quot;https://www.matuzo.at/blog/2026/aria-label-generic-elements&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://www.matuzo.at/blog/2026/aria-label-generic-elements&quot;&gt;https://www.matuzo.at/blog/2026/aria-label-generic-elements&lt;/a&gt;&lt;a class=&quot;tgme_widget_message_link_preview&quot; href=&quot;https://matuzo.at/blog/2026/aria-label-generic-elements&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;I&apos;m a frontend developer in Graz, specialized in HTML, accessibility, and CSS layout and architecture.&quot;&gt;
  &lt;i class=&quot;link_preview_right_image&quot; style=&quot;background-image:url(&apos;https://cdn4.telesco.pe/file/p0IER_q1w75MSZ-YvgxY707xXQABFo1FO7gNKQ9GDFMNep8C1rCuHPBZ9IQ5ktQ8IHcQptsm0gkr-holxUDLtxw9rG36qkzcW-mVicPJUyOQDep_xS0ad_ryKGv1-Yt2JEn5V6rl_Gv4foEPeQbH7GjSyvpd9YtaBvo93km2ejhiPByO0H-iD9XnnIFvxTZVA2f7UC3PwBZMltyRN9OSZ2FZCanTFSjZrc5hvcTrSezPEWno5g3-3K29y-ZZQ2UHT0ELUDhGU36T_xwicCDlsalacRx2dHIA8KVOHhfq1kx7QeeWpbHtGlJVOT4zyoVfYmniYLgiJN8v-Dp0dvty5w.jpg&apos;)&quot;&gt;&lt;/i&gt;
  &lt;div class=&quot;link_preview_site_name accent_color&quot;&gt;Manuel Matuzovic&lt;/div&gt;
  
  &lt;div class=&quot;link_preview_title&quot;&gt;Don&apos;t put aria-label on generic elements like divs&lt;/div&gt;
  &lt;div class=&quot;link_preview_description&quot;&gt;I&apos;m a frontend developer in Graz, specialized in HTML, accessibility, and CSS layout and architecture.&lt;/div&gt;
&lt;/a&gt;</content:encoded></item></channel></rss>