为什么,如何以及何时使用语义HTML和ARIA
语义HTML和可访问的丰富的Internet应用程序(ARIA)对于构建包容性和性能的Web界面至关重要。它们为内容提供了基本背景,使浏览器,搜索引擎,屏幕读取器和用户可以理解。尽管有好处,许多开发人员却忽略了他们。引用的一个常见原因是对他们的优势缺乏认识。
本文探讨了语义HTML和ARIA的好处,主张使用语义HTML的优先级,并且仅将ARIA用作最后的度假胜地。
从纯文本开始:问题
这元素包含页面的主要内容。没有构造元素,浏览器无法区分标题和段落等内容类型的能力。考虑此示例:
<code>A Study of Butterflies Butterflies are little bugs with cute wings. Butterfly Habitats Butterflies live in flower houses and hang out at dank coffeeshops.</code>
缺乏结构导致几个问题:
- 无法样式的标题与段落不同。
- 搜索引擎索引和可发现性受损。
- 与辅助技术的内容沟通无效。
- 视觉表现不佳。
添加基本结构<div>s<p>包装文字<code><div>元素提供了略有改进:<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><code><div>蝴蝶的研究。</div>
<div>蝴蝶是带有可爱翅膀的小虫子。</div>
<div>蝴蝶栖息地</div>
<div>蝴蝶住在花房里,在潮湿的咖啡店闲逛。</div></code></pre><div class="contentsignin">登录后复制</div></div>
<p>但是,这仍然缺乏语义含义。内容的类型对于辅助技术和搜索引擎仍然是模棱两可的。</p>
<h3 id="使用CSS造型-有限的解决方案">使用CSS造型:有限的解决方案</h3>
<p>CSS可以样式<code><div>使用类或ID的元素,增强视觉呈现。但是,这只会使视力用户受益,并且不能为其他技术提供语义含义。<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><code><div class="heading1">蝴蝶的研究</div>
<div class="paragraph">蝴蝶是带有可爱翅膀的小虫子。</div>
<div class="heading2">蝴蝶栖息地</div>
<div class="paragraph">蝴蝶住在花房里,在潮湿的咖啡店闲逛。</div></code></pre><div class="contentsignin">登录后复制</div></div>
<p>这种方法是脆弱的,缺乏固有的语义含义。</p>
<h3 id="语义HTML的力量">语义HTML的力量</h3>
<p>语义html元素喜欢<code><h1 id="code-h-和-code-p-提供固有的含义-使用这些元素而不是通用-code-div-S优越-div-class-code-style-position-relative-padding-px-margin-px-pre-code-h-蝴蝶的研究">,,,,<code><h2> , 和<code><p>提供固有的含义。使用这些元素而不是通用<code><div>S优越:<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><code><h1>蝴蝶的研究</h1>
<p>蝴蝶是带有可爱翅膀的小虫子。</p>
<h2 id="蝴蝶栖息地">蝴蝶栖息地</h2>
<p>蝴蝶住在花房里,在潮湿的咖啡店闲逛。</p></code></pre><div class="contentsignin">登录后复制</div></div>
<p>这种方法提供了许多优势:</p>
<ul>
<li>默认的浏览器样式和改进的视觉呈现。</li>
<li>增强的搜索引擎优化。</li>
<li>通过辅助技术进行适当的解释。</li>
<li>更清洁,更简洁的代码。</li>
<li>与HTML处理器的未来防护兼容性。</li>
</ul>
<h3 id="语义HTML的进一步好处">语义HTML的进一步好处</h3>
<p>语义HTML提供了其他好处。例如,使用<code><input type="tel">
在移动设备上提供数字键盘。 Safari的读者模式之类的浏览器也受益于语义HTML,从而提供了更清洁的阅读体验。
ARIA:必要的补充
ARIA(可访问的互联网应用程序)补充语义HTML,改善了辅助技术的可访问性。这对于由JavaScript操纵的动态内容特别有用。
例如,使用ARIA将错误消息与表单字段相关联确保正确宣布错误:
<code><label for="first-name">First name</label><input type="text" id="first-name" aria-describedby="first-name-error"> <span id="first-name-error" aria-live="assertive">This field is required</span></code>
避免滥用咏叹调
避免使用ARIA来补偿差的语义HTML至关重要。尝试使用使用的本机HTML元素(例如,复选框)<div> S和Aria比使用适当的本机元素过于复杂且可靠。<h3 id="结论">结论</h3>
<p>包容性设计优先考虑所有用户的可访问性。语义HTML是基础,提供了固有的含义并改善了各种技术的用户体验。应明智地使用ARIA来补充语义HTML,以应对动态接口中的特定可访问性挑战,但绝不是替代适当的语义标记。优先考虑语义HTML是创建真正包容性网络体验的最有效,最可靠的途径。</p>
</div>
以上是为什么,如何以及何时使用语义HTML和ARIA的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

您是否曾经在项目上需要一个倒计时计时器?对于这样的东西,可以自然访问插件,但实际上更多

在元素个数不固定的情况下如何通过CSS选择第一个指定类名的子元素在处理HTML结构时,常常会遇到元素个数不�...

关于Flex布局中紫色斜线区域的疑问在使用Flex布局时,你可能会遇到一些令人困惑的现象,比如在开发者工具(d...

格子呢是一块图案布,通常与苏格兰有关,尤其是他们时尚的苏格兰语。在Tartanify.com上,我们收集了5,000多个格子呢
