(四)应用无障碍

简介: (四)应用无障碍

前言


第一节:基础HTML

第二节:基础CSS

第三节:应用视觉设计


在网页开发中,可访问性是指网页内容和用户界面可以被用户理解、浏览并与之交互。这里的用户包括有视觉障碍、听觉障碍或认知障碍的用户。



image.png


img alt

alt 属性可以帮助用户在图片加载失败或者不可见的情况下理解图片内容, 搜索引擎也通过它来理解图片内容,并将其加入到搜索结果中。

屏幕阅读器可以识别 alt 属性,朗读其中的内容,来告知视觉障碍用户图片包含的关键信息。

在图片已经有了文字说明,或者仅仅为了美化页面,img 仍然需要一个 alt 属性,但可以设置为空字符串。

对于有标题的图片,依然需要添加 alt 文本,这样有助于搜索引擎记录图片内容。

<img src="importantLogo.jpeg" alt="Company logo">
复制代码


Elements


HTML5 引入了诸如 mainheaderfooternavarticlesection 等大量新标签,给予开发者更多的选择,也包含辅助功能。


默认情况下,浏览器呈现这些元素的方式类似于普通的 div。 但是,在适当的地方使用它们会让标记文本具有更多的含义。


h1 ~ h6


每个页面应只有一个 h1 标签,用来概括说明页面的主题。

六个标题标签可以让搜索引擎获取页面的大纲。


main


main 标签用于呈现网页的主体内容,且每个页面应只有一个。

它有一个内嵌的特性,以便辅助技术快速定位到页面的主体。

如果在页面顶部看到过“跳转到主要内容”链接,那么使用 main 标签会自动让辅助设备具有这个跳转的功能。


article


article 是一个分段标签,用于呈现独立及完整的内容。 这个标签适用于博客、论坛帖子或者新闻文章。


删除了所有周围的上下文,这个内容仍然有意义,确定内容可以单独作为一部分。

article 用于独立且完整的内容,而 section 用于对与主题相关的内容进行分组,可以根据需要来嵌套使用。


举个例子:如果一本书是一个 article 的话,那么每个章节就是 section


当内容组之间没有联系时,我们可以使用 div


header


header 可以为父级标签呈现简介信息或者导航链接,适用于那些在多个页面顶部重复出现的内容。

header 应当在 HTML 文档的 body 标签内使用,与包含页面标题、元信息的 head 标签不同。


nav


nav 也是一个具有语义化特性的 HTML5 标签。

它可以使屏幕阅读器快速识别出页面中的导航信息。 它用于呈现页面中的主导航链接。


footer


footer 元素也具有语义化的特性,可以让辅助工具快速定位到它。

它位于页面底部,用于呈现版权信息或者相关文档链接。


audio


audio 标签用于呈现音频内容或音频流,它也具有语义化特性。 音频内容也需要备用文本,供聋哑人或听力困难的人使用。


audio 标签支持 controls 属性, 用于显示浏览器默认播放、停止和其他控制,以及支持键盘功能。


注意: 音频片段的播放速度可能会快到难以理解,但是对于屏幕阅读器用户来说这是正常速度。


<audio controls>
    <source src="https://s3.amazonaws.com/freecodecamp/screen-reader.mp3" 
            type="audio/mpeg">
</audio>
复制代码


figure figcaption


figure 标签以及 figcaption 标签一起用于展示可视化信息(如:图片、图表)及其标题。


<figure>
    <img src="roundhouseDestruction.jpeg" 
         alt="Photo of Camper Cat executing a roundhouse kick">
    <br>
    <figcaption>
        Master Camper Cat demonstrates proper form.
    </figcaption>
</figure>
复制代码


label for


label 标签的文本内容通常会是表单组件的名称或标签。

这些文本表明了组件的意义,也提升了表单的可访问性。

label 标签的 for 属性将标签与表单组件绑定,屏幕阅读器也会读取 for 属性的属性值。

为了让标签可以在点击的时候也选中输入框,可以将单选按钮 input 标签嵌套在了 label 标签里面。 或者使用 for 属性,使其与表单组件的 id 属性值相同。


<label for="email">Email:</label>
<input type="text" id="email" name="email">
<input type="submit" name="submit" value="Submit">
复制代码


fieldset legend


fieldset 标签包裹整组单选按钮,使用 legend 标签来提供分组的描述,以便屏幕阅读器用户会阅读 fieldset 元素中的每个选项。

而当选项的含义很明确时,如“性别选择”,使用包含 for 属性的 label 标签就足够了。


<form>
    <fieldset>
        <legend>Choose one of these three items:</legend>
        <input id="one" name="items" type="radio" value="one">
        <label for="one">Choice One</label>
        <br>
        <input id="two" name="items" type="radio" value="two">
        <label for="two">Choice Two</label>
        <br>
        <input id="three" name="items" type="radio" value="three">
        <label for="three">Choice Three</label>
    </fieldset>
</form>
复制代码


input date


image.png



<label for="pickdate">Enter a date: </label>
<input type="date" id="pickdate" name="date">
复制代码


time datetime


<p>
    Thank you to everyone for responding to Master Camper Cat's survey. 
    The best day to host the vaunted Mortal Kombattournament is
    <time datetime="2016-09-15">
        Thursday, September 15<sup>th</sup>
    </time>
    . May the best ninja win!
</p>
复制代码


ScreenReader-only


添加一些只对屏幕阅读器可见的内容,可以用 CSS 来实现。

注意:

  • display: none;visibility: hidden; 会把内容彻底隐藏起来,屏幕阅读器也无法获取这些内容。
  • 如果把值设置为 0px,如 width: 0px; height: 0px;,意味着让元素脱离文档流,这样做同样也会让屏幕阅读器忽略此元素。


.sr-only {
    position: absolute;
    left: -10000px;
    width: 1px;
    height: 1px;
    top: auto;
    overflow: hidden;
}
复制代码


High Contrast Text


Web 内容无障碍指南(WCAG)建议正常文本的对比度至少为 4.5 : 1。

对比度是通过比较两种颜色的相对亮度值来计算的。

对比度的范围是从相同颜色的 1:1(无对比度)到白色与黑色的最高对比度 21:1。

可以通过将较暗的颜色变暗、将较淡的颜色变淡的方法来使对比度达到 4.5:1。

在色轮中,较暗的颜色通常是蓝色、紫色、洋红和红色,而较淡的颜色通常是橙色、黄色、绿色和蓝绿色。


accesskey


HTML 提供 accesskey 属性,用于指定激活元素或者使元素获得焦点的快捷键。

添加 accesskey 属性可以让使用键盘的用户更高效率地导航。


HTML5 允许在任何标签上使用这个属性。 该属性尤其适用于链接、按钮、表单组件等元素。


tabindex


当用户使用键盘浏览页面时,诸如链接、表单控件等元素可以自动获得焦点,获得焦点的顺序与它们出现在 HTML 文档流中的顺序一致。当然可以通过将其他标签(如 divspanp 等)的 tabindex 属性值设为 0 来让它们实现类似的效果。

注意:tabindex 属性值为负整数(通常为 -1)的标签也是可以获得焦点的,只是不可以通过键盘操作(如 tab 键)来获得焦点。使用 tabindex 属性还可以让 CSS 伪类 :focusp 标签上生效。


<div tabindex="0">I need keyboard focus!</div>
复制代码


给元素设置 tabindex="1",键盘将首先把焦点放在这个元素上。

然后它按照指定的 tabindex 值(2、3 等等)顺序循环,再移动到默认值和 tabindex="0" 项目。


<input type="search" name="search" 
        id="search" tabindex="1">
<input type="submit" name="submit" 
        value="Submit" id="submit" tabindex="2">


目录
相关文章
|
存储 缓存 Kubernetes
秒级启动万个容器,探秘阿里云容器镜像加速黑科技
阿里云容器与存储团队展开合作,利用DADI加速器支持镜像按需读取和P2P分发,实现3.01秒启动10000个容器,完美杜绝容器冷启动的数分钟漫长等待,以及镜像仓库大规模并行分发场景下的网络拥堵。
6097 0
秒级启动万个容器,探秘阿里云容器镜像加速黑科技
|
物联网
通过微信小程序体验阿里云IoT物联网平台
通过微信小程序体验阿里云IoT物联网平台
10254 0
|
11月前
|
机器学习/深度学习 传感器 安全
从传统到智能:2025年安全管理系统分析与工具选型
本系统基于工业4.0技术,融合物联网、边缘计算与AI,构建分层防御架构,支持实时态势感知与自适应学习。采用多模态感知层、TSN网络与微服务架构,集成计算机视觉与多传感器融合算法,结合知识图谱与智能工作流,实现高效安全管理。
614 4
|
10月前
|
JSON 算法 安全
淘宝商品详情API接口系列,json数据返回
淘宝开放平台提供了多种API接口用于获取商品详情信息,主要通过 淘宝开放平台(Taobao Open Platform, TOP) 的 taobao.tbk.item.info.get(淘宝客商品详情)或 taobao.item.get(标准商品API)等接口实现。以下是关键信息及JSON返回示例:
|
9月前
|
JSON 缓存 测试技术
程序出错瞎找?教你写“会说话”的错误日志,秒定位原因
错误日志是排查问题的“导航地图”。本文详解错误三大来源:参数非法、交互故障、逻辑疏漏,并分享写好日志的6大原则——完整、具体、直接、集成经验、格式统一、突出关键字,助你快速定位问题,提升系统可维护性。
619 0
|
人工智能 测试技术
VideoPhy:UCLA 和谷歌联合推出评估视频生成模型物理模拟能力的评估工具,衡量模型生成的视频是否遵循现实世界的物理规则
VideoPhy 是 UCLA 和谷歌联合推出的首个评估视频生成模型物理常识能力的基准测试,旨在衡量模型生成的视频是否遵循现实世界的物理规则。
521 9
VideoPhy:UCLA 和谷歌联合推出评估视频生成模型物理模拟能力的评估工具,衡量模型生成的视频是否遵循现实世界的物理规则
|
JSON 算法 C语言
【leecode刷题】各种哈希表最全面总结----以217. 存在重复元素为例
【leecode刷题】各种哈希表最全面总结----以217. 存在重复元素为例
441 0
【leecode刷题】各种哈希表最全面总结----以217. 存在重复元素为例
|
Android开发 开发者
Android启动优化之精确测量启动各个阶段的耗时
Android启动优化之精确测量启动各个阶段的耗时
Android启动优化之精确测量启动各个阶段的耗时
|
网络协议 关系型数据库 MySQL
bind-address如果是127.0.0.1,mysql只接受localhost,不接受远程连接。
bind-address如果是127.0.0.1,mysql只接受localhost,不接受远程连接。
1088 0
|
SQL 数据可视化 数据库
SQL SERVER数据库服务器CPU不能全部利用原因分析
SQL SERVER数据库服务器CPU不能全部利用原因分析
533 0

热门文章

最新文章