借助 Material Design,帮助您打造更好的无障碍应用 (下篇)

news2024/12/26 13:42:31

随着时代的发展,"无障碍体验" 对开发者的意义也愈发重大,在上一篇文章中,我们为您介绍了无障碍布局和排版、文案等相关内容。本文将进一步为您介绍图片、声音和运动、实现无障碍的内容。

2525f6f13e8366d738a5516686113c0b.png

图片

图片类型

要知道何时以及如何使图片遵循无障碍指南,了解图片类型之间的差异至关重要。

装饰型图片和信息型图片

要了解图片是否需要遵循色彩对比度指南以及是否需要图片说明,您需要确定它是装饰型的还是信息型的。

  • 色彩对比度指南

    https://material.io/design/usability/accessibility.html#color-contrast

根据 W3C 的定义,装饰型图片不会给页面内容添加信息。装饰型图片:

  • 无需图片说明

  • 无需遵循色彩对比度指南

  • 无需备用文本

  • 在图片标签中应有一个 null (空) 标记 (alt=””),以便屏幕阅读器跳过它们

  • W3C

    https://www.w3.org/WAI/tutorials/images/decorative

根据 W3C 的定义,信息型图片会以简短易懂的方式传达概念。信息型图片:

  • 传达与相邻文本相关的准确信息

  • 需要图片说明

  • 如果图片说明或相邻文本未对图片进行解释,则需要备用文本

  • 对于不可或缺的内容,必须遵循色彩对比度指南

  • W3C

    https://www.w3.org/WAI/tutorials/images/informative

e574c28f914e1a74c303f4eca36dfc3b.png

正确做法

这张信息型图片是一张显示一个地点是什么样子的照片。

(备用文本示例: 人们在纽约高线公园散步和骑自行车)

2c3fd1afff4396ea15582983d469478c.png

注意

使用装饰型图片 (如自行车或冰淇淋甜筒) 来显示一个地点对使用屏幕阅读器的用户来说可能并不实用,因为它不能提供额外的信息。

(备用文本示例: 一个人脚踩自行车踏板的特写。)

基本元素和非基本元素

信息型图片中包含基本元素和非基本元素。基本信息的大号文字色彩对比度应是 3:1,小号文字的对比度,应是 4.5:1。

c07c43212cfb11828aa8e67d08a96368.png

插图同时包含基本信息和非基本信息:

  1. 基本信息: 文本符合所有的对比度和尺寸要求。

  2. 基本信息: 有关说明的插图式表现形式,遵从了色彩对比度指南的要求。

  3. 非基本信息: 装饰型元素形成了插图的背景,赋予其独特的个性。它们不传达信息,也无需满足对比度要求。

功能型图片

根据 W3C 的定义,功能型图片包括徽标、图标、按钮内的图片以及可操作的图片 (如链接)。功能型图片的备用文本不同于其他类型的图片的备用文本,因为功能型图片的备用文本描述的是图片的功能,而不是它的内容或它的外观。

  • W3C

    https://www.w3.org/WAI/tutorials/images/functional

如果按钮内的图标或图片具有特定功能,请向其添加 alt 标签,并使用操作动词 (而不是图标名称) 说明其功能。如需了解如何撰写更符合无障碍标准的文本,您可以参阅官方文档:

https://material.io/design/usability/accessibility.html#writing

徽标

徽标可受益于描述其功能的 alt 标签,但它们是一种独特的功能型图片,因为它们:

  • 可能不符合色彩对比度要求

  • 可能不符合文本大小要求

如需了解徽标和色彩对比度,您可以参阅色彩和对比度:

https://material.io/design/usability/accessibility.html#color-contrast

不过,如果一个徽标是文本链接的一部分,只起装饰作用而没有任何功能,请添加一个 null 值 alt 标记 ((alt=””)。

4cfb2f241a8827c69c8968e71bd06963.png

该备用文本表示,如果用户点击此徽标,将跳转到 Google 搜索主页。

(备用文本示例: 链接到 Google 搜索主页)

您可以访问文档,了解对比度的更多相关内容:

https://www.w3.org/WAI/WCAG21/Understanding/non-text-contrast.html

a380e414a087d32348fd1b0e3f0b2934.png

声音和运动

声音

如果您向界面元素添加描述性标签,用户可以使用声音在您的应用中导航。如果用户使用屏幕阅读器 (如 TalkBack) 并通过轻触探索进行导航,那么当其轻触屏幕上的界面元素时,屏幕阅读器会将标签大声读出来。

  • 轻触探索

    https://support.google.com/accessibility/android/answer/6006598?hl=zh-Hans

在以下情况下,屏幕阅读器可能难以使用:

  • 有声音通过屏幕阅读器播放,例如自动播放的背景音乐 (您可以为用户提供暂停或停止播放这些声音的控件)

  • 原生元素中添加了额外的声音 (屏幕阅读器将能够正确地解释原生元素)

声音的替代方案

可以为声音或其他关键音频元素和提醒提供视觉替代方案,如字幕或转录。

您可以访问官方文档,了解标记界面元素的更多相关内容:

https://developer.android.google.cn/guide/topics/ui/accessibility/apps.html#label-ui

运动

Material Design 使用运动在屏幕之间引导焦点。表面会转换为需要用户关注的焦点,不重要的元素会移除。

为了让对运动和视觉敏感的用户自如地使用界面,Material Design 提供了运动指南,支持 W3C 制定的以下各项准则:

  • 会自动移动、滚动或闪烁的内容,如果持续时间超过 5 秒,则可暂停、停止或隐藏

  • 将闪烁内容的闪烁频率限制为 1 秒内不超过 3 次,以满足闪烁和红闪阈值要求

  • 避免屏幕中央大区域出现闪烁

  • 移动、滚动或闪烁

    https://www.w3.org/TR/WCAG20/#general-thresholddef

  • 闪烁和红闪阈值

    https://www.w3.org/TR/WCAG20/#general-thresholddef

  • 屏幕中央大区域出现闪烁

    https://www.w3.org/TR/2015/NOTE-WCAG20-TECHS-20150226/G176

您可以参考以下内容,了解更多相关信息:

  • 运动有助于打造富有表现力且易于使用的界面

    https://material.io/design/motion/understanding-motion.html

  • 自动读出文本

    https://codelabs.developers.google.com/codelabs/basic-android-accessibility/index.html?index=..%2F..%2Findex#6

计时控件

应用中的控件可以设置为在一段时间后消失。例如,可以让播放控件在视频开始 5 秒钟后从屏幕上淡出。

高优先级控件

如果计时器导致执行高优先级功能的控件过快消失,用户可能会忽略它们。例如,TalkBack 会大声读出获得焦点的控件。为这类控件设置计时器可能会妨碍其完成任务。

启用重要功能的控件可以允许用户再次打开它们,或以其他方式执行相同的功能。如需详细了解,您可以参阅组合相关内容:

https://material.io/design/usability/accessibility.html#composition

6c38151701f8f159a3ed3486c5d99bd5.png

实现无障碍

通过使用标准平台控件和语义 HTML (在网站上),应用会自动包含与平台的辅助技术很好地协同工作所需的标记和代码。满足各个平台的无障碍标准并支持其辅助技术 (包括快捷方式和结构) 可以为用户提供高效体验。

abf54a3b7cec2e21e9e6207f88984c54.png

6e94b4cd78862ce6b3eb3e1c60b29887.png

正确做法

使用原生元素,例如标准平台对话框。

注意

使用非标准元素时要小心,例如使用非标准平台对话框执行标准对话框任务。这需要进行额外的测试,以便与辅助技术更好地协同工作。

您可以在启用平台无障碍设置的情况下 (在实现期间和实现之后) 测试设计。

其他设计注意事项:

  • 使用可扩展的文本和空间宽裕的布局,以便用户能够启用大号字体、颜色校正、放大功能或其他辅助设置。

  • 键盘和鼠标界面可以通过仅键盘输入来实现每一项任务和所有悬停信息。

  • 触摸界面可以让屏幕阅读器和其他辅助技术设备读取界面的所有部分。

fa2a4524b179f86607b695377aa9bffb.png

fe970df0df3a5da6ae424ca4a22bcb73.png

正确做法

针对放大功能和大号字体适当调整界面。

注意

此界面不能针对放大功能和大号字体适当地做出调整。部分内容重叠或被截断。

标记界面元素

为了让使用屏幕阅读器的用户知道哪些界面元素是可点按的,不妨让屏幕阅读器大声读出组件的名称。可以将 contentDescription 属性添加到所包含的图标没有可见文本的组件 (如按钮、图标和标签页) 中。对于 Web 应用,可以添加一个 add aria-labe:

https://web.dev/aria-labels-and-relationships/

e6b9b874b59b7f17b54e74d2ceccfb13.png

31e4965d5ec4cf4049a4588d3490b449.png

1. 标记搜索图标

2. 标记麦克风图标

1. 标记编辑图标

2. 标记聊天图标

了解描述每个界面元素的相关信息,您可以查看我们之前的推文《为应用打造更好的无障碍体验》 。

帮助文档

可以将具有特殊的无障碍注意事项的功能纳入帮助文档中。例如,您可以查看指南了解如何将屏幕阅读器与 Google 云端硬盘结合使用。

  • 指南: 将屏幕阅读器与 Google 云端硬盘结合使用

    https://support.google.com/drive/answer/6034939

测试和研究

遵循这些无障碍指南有助于为您的应用打造更好的无障碍体验,但并不保证能提供完全无障碍的体验。建议您同时执行以下操作:

  • 在启用各种辅助技术的情况下,从头到尾测试您的应用是否可以充分完成任务。例如,在 TalkBack 中启用 "轻触探索" 功能,更改大声读出文本的速度。

  • 让有障碍的用户帮助您测试应用。

  • 考虑如何使各个元素障碍更少,同时又能将它们整合到一个连贯的用户流。

  • 让应用中的主要任务对各种用户来说都尽可能易用。

与您的用户交流,特别是那些使用辅助技术的用户,了解他们的需求,他们希望从您的应用中获得什么,他们使用什么工具,以及他们如何使用这些工具。熟悉这些工具,帮助您为他们提供更好的体验。

您可以参考面向设计人员的无障碍研究指南,了解更多相关内容:

https://design.google/library/designers-guide-accessibility-research


以上就是无障碍设计的相关内容,感谢您的持续关注。也欢迎您持续关注我们,及时了解更多开发技术和产品更新等资讯动态。

32c3aa9fd2673c58522fa628503404e9.gif

推荐阅读

如页面未加载,请刷新重试

3d9c5d5656b347ba6ba831d7e516e4e9.gif 点击屏末 阅读原文 | 即刻了解无障碍功能更多相关内容


47434fcd21869818f59ddcbc2f344e25.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/128095.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

多维尺度MDS案例分析

多维尺度(multidimensional scaling, MDS),是一种将研究对象之间距离或者不相似度的直观展示,较为典型的研究对象是地理位置,当然也可以是观点、颜色等任意各类实体或抽象概念,比如茶的口味不相似情况。多维…

MoCo论文:Momentum Contrast for Unsupervised Visual Representation Learning

目录一. 引言二. 背景介绍:对比学习三. 标题和作者四. 动量方式:五. 摘要六. 相关工作七. 结论八. MoCo方法九. MoCo伪代码十. 文章贡献10.1 第一个贡献:如何把一个字典看成队列10.2 文章的第二个贡献:如何使用动量的思想去更新编…

GO-生命周期

好奇心 出于好奇,想了解go的执行生命周期,于是尝试跟着go的源码看看执行过程 go源码地址:GitHub - golang/go: The Go programming language 1.根据命令行编译文件,然后执行二进制文件 (1)从go运行命令…

基于深度学习的人工林地面激光扫描点云立木特征参数提取方法

Abstract 利用基于三维点云的技术量化立木和立木参数,可以在林业生态效益评估和立木培育和利用中发挥关键作用。随着光探测与测距(LiDAR)扫描等三维信息获取技术的进步,可以更高效地获取大面积、复杂地形的树木林分信息。然而&am…

IFC常用关系定义

IFC常用关系定义 IfcRelDefinesByType IfcRelDefinesByType表示对象化的关系(The objectified relationship),定义了一种对象类型定义(object type)和对象实体(object occurrences)的关系。IfcRelDefinesByType是1:n的关系,可以将一个对象类型定义(obj…

深入浅出scala之集合体系(集合即容器)(P46-4)

文章目录一、容器概念二、定长数组一、容器概念 1.集合是一种用来存储各种对象和数据的容器。 2.Scala集合分为可变和不可变的集合,不可变集合可以安全的并发访问。 可变集合可以在适当的地方被更新或扩展。这意味着可以修改,添加,移除一个集…

笔记:软件工程常用开源文档模板 + 软件著作权

https://github.com/AlexanderZhou01/China-software-copyright 下载以上的工程 解压放到U盘里 打开 D:\China-software-copyright-master 国家版权保护中心网址 办理步骤为企业获取政策优惠,减免。为学生提供成果。 办理步骤 (3030)∗50(3030)*50(3030)∗5…

Python 高效率传参调用 MATLAB 程序

Background python调用matlab脚本需要注意前置条件,具体参考官方文档:从 Python 中调用 MATLAB,大致就是两点:一是需要python和matlab版本对应,二是需要matlab运行环境mcr。具体安装配置可以参考:java和pyt…

使用Filebeat和AWS CloudWatch Logs将EC2上的Tomcat的access_log传送到ELK

文章目录背景和方案选择前提注册AWS账号创建EC2实例注意事项在EC2实例上安装aws-cloudwatch-agent注意事项测试aws-cloudwatch-agent是否可用使用Docker Compose部署ELK使用Docker Compose部署Filebeat配置文件说明docker-compose.yml说明filebeat配置文件说明input配置AWS Clo…

华为智能基座实验【计算机组成原理】

华为智能基座实验【计算机组成原理】前言推荐华为智能基座实验【计算机组成原理】1 课程介绍1.1 简介1.2 内容描述1.3 读者知识背景1.4 实验环境说明2 实验 1:hello-world 示例程序2.1 实验介绍2.1.1 关于本实验2.1.2 教学目标2.1.3 实验内容介绍2.2 实验任务操作指…

宝宝多大戒尿不湿?不看年龄看表现,用对方法轻松戒掉尿不湿

宝宝刚出生的时候,大小便次数比较多,宝宝自己也控制不了。这时,使用尿布可以减少父母的大量工作。但使用尿布只是暂时的。当宝宝到了一定年龄,就应该戒掉。宝宝能戒尿多大?既然尿布是用来兜宝宝大小便的,如…

从零学习 InfiniBand-network架构(十一) —— 管理器的介绍

从零学习 InfiniBand-network架构(十一) —— 管理器的介绍 🔈声明: 😃博主主页:王_嘻嘻的CSDN主页 🔑未经作者允许,禁止转载 🚩本专题部分内容源于《InfiniBand-network…

作为QA,我们要如何思考?

随着测试人员陆续开始尝试角色转变,坚守的QA需要找到自己的发展之路。兴趣和性格是客观因素,好奇心和发散性思维则是帮助成为优秀QA的必要因素。我想通过一些小的例子来与大家互动探讨。 测试你做对了吗? 让我们从这样一个现实中的小例子来…

【历史上的今天】12 月 30 日:C++ 之父诞生;Hotmail 创始人出生;Facebook 注册破百万

整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。 今天是 2022 年 12 月 30 日,在 1930 年的这一天,“青蒿素之母”屠呦呦出生。2015 年 10 月 5 日,屠呦呦获得诺贝尔生理学或医学奖&#xf…

【Java基础知识】对Object类wait()和notify()方法的理解

wait()/notify()原理 当前线程必须拥有此对象的monitor监视器(锁)。(不获取锁直接用Object对象调用wait和notify,会报错java.lang.IllegalMonitorStateException)当前线程调用wait() 方法,线程就会释放此锁的所有权&a…

动态库和静态库

文章目录感性认识库动态库和静态库从库的设计者来看库制作静态库制作动态库库的使用者的角度静态库的使用使用动态库1.把头文件和库文件拷贝到系统的路径下2.修改对应的环境变量更改文件 ld.so.conf.d在系统的库路径下建立对应的软链接动态库如何加载感性认识库 首先&#xff…

关于GNSS关键性能测试,应该如何选择?

现在,GPS/GNSS信号无处不在,而GNSS接收机芯片的低成本和高性能也让在不同设备中安装GNSS接收机变得更为容易。然而,与此同时又存在一个问题,如果想将这些接收器芯片集成到一个设备或系统中,该如何对其进行全面的GNSS测…

方法注解@Bean与对象注入

1.类注解是添加到某个类上的,⽽⽅法注解是放到某个⽅法上的,如以下代码的实现: 注:方法注解一定要搭配类注解使用,否则会报错 2.重命名Bean 多个重命名,使用多个名称获取的对象都是同一个 3.获取 Bean 对象…

全网惟一面向软件测试人员的Python基础教程-在Python中列表是什么?

全网惟一面向软件测试人员的Python基础教程 起点:《python软件测试实战宝典》介绍 第一章 为什么软件测试人员要学习Python 第二章 学Python之前要搞懂的道理 第三章 你知道Python代码是怎样运行的吗? 第四章 Python数据类型中有那些故事呢?…

TTL(RGB)接口液晶显示屏的调试方法

TTL接口的液晶显示屏一般会使用DE模式驱动它。首先需要CPU带有LCD控制器,能够产生出液晶显示屏所需要的以下几个信号: 1.时钟信号(DOTCLK) 2.行同步信号(HSYNC) 3.场同步信号(VSYNC) 4.DEN(数据允许信号) 6.数据信号(R0-R7;G0-G7;B0-B7)…