UI 学习 三 可访问性 UX

设计、交流和实现不同领域内容的易访问性决策,涉及到一系列考虑因素,以达到更容易访问的产品体验。

Material使用的框架借鉴了WCAG标准和行业最佳实践,以帮助任何人预测、计划、记录和实现可访问体验。

下面描述的三个阶段有助于将可视化UI转换为基于文本的线性用户体验,并将其映射到代码。

一 概述

易访问性标记是为设计规范创建文档的一个组成部分。

产品的可访问性有三个关键方面需要指定:结构流程和屏幕上的元素

二 结构:标识和标题

定义内容和UI布局以改进导航和便于功能理解。

辅助技术(AT)依靠清晰、轮廓分明的结构来处理页面信息,主要通过使用标题和标识进行导航。许多辅助技术,如屏幕阅读器,将设计转换为线性体验,这意味着许多用户以分层的、预先确定的顺序与内容交互。因此,提前考虑结构决策可以提高产品的可访问性。

仅适用于网页:地标和标题可以帮助辅助技术用户定位到网页,并允许轻松导航和遍历文档或页面的大部分内容。

通过对页面的各个部分进行分类和标记,通过布局设计可视化地传达的结构信息,也可以用代码实现,并通过页面显示。

一个页面关系图的例子,它映射了一个UI的区域,以便考虑相对的标志和标题 

  • banner 网站logo,或网站名字
  • search 搜索
  • navigation 导航
  • main 主要信息展示区域
  • region padding之内的信息展示区域
  • complementary  补充内容,有些后台现在没有这部分

2.1 识别标识和标题

2.1.1 定义标识

标识是建立布局高层结构的大块内容。它们是一组ARIA角色,为web页面的公共内容区域提供了方便的访问和重要的意义。

有八个角色:导航、搜索、主要区域、横幅、补充、内容信息、区域和表单。

W3C ARIA指南中的八个里程碑式角色包括:

  1. 导航:包含导航链接列表(可以有多个,在这种情况下,您应该在标签中进行区分)
  2. 搜索:搜索字段
  3. 主要区域:由UX定义的主要内容区域。应该只有一个。
  4. 横幅:通常是页眉;页面之间重复的内容通常包含导航和工具栏。应该只有一个。
  5. 补充性:可以独立于主要内容的侧边栏或侧边栏
  6. 内容信息:通常是页脚;包含描述网站及其内容的信息(例如,版权)。应该只有一个。
  7. 区域:内容区域是重要的内容块。它们可以嵌套在“主”地标内。区域应该用名称标记,使该区域的目的清晰。
  8. 表单:获取并存储用户信息

添加无障碍标签

向多次出现的任何里角色(通常是区域或导航)添加清晰且特定的标签。这将有助于用户区分信息。

所有地区以及任何标识都应添加标签,标签将增强其意义。例如,解释侧边栏的内容或目的。

不要在标签中重复标识角色。

这个布局有两个区域分配了导航角色。

每个标识都应该有一个唯一的标签,以帮助用户区分元素之间的区别。 

2.1.2 定义标题

 

使用辅助技术的用户经常在标题的帮助下浏览网页。它们创建了一个清晰的层次结构来帮助用户导航和操作。

  1. 根据内容层次结构而不是视觉样式来定义标题
  2. 标题不应该跳过一个级别,例如,不要从H2直接到H4,而不使用H3
  3. 根据内容的层次结构,将页面上的内容按顺序映射到标题(H1-H6)
  4. 建议使用一个H1作为页面整体标题

标题展示例子,图中h1到h4标签为html代码。

除了风格之外,还要考虑层次结构。

确保标题与整体的标题一致。如果他们不这样做,考虑改变UI中的标题样式,确保用户体验良好,或者添加标签。

人话:主标题(页面整体标题)内容下子标题要和主标题信息相关,否则应改变UI中的样式。其实不相关的信息,不应该在一个页面中都设置为标题。

标题级别由布局的信息体系结构展示——应用于一组项目的结构层次结构。页面的视觉样式不需要在视觉突出和视觉层次方面匹配标题级别。(这个不太懂)

人话:标题仅用于信息展示,其组内内容,没必要在视觉突出和视觉层次方面和标题匹配。比如H1组内的信息,非标题内容,没必要字号比小组中字号大。

当然,仅个人理解……

三 流程:焦点顺序和键盘导航

定义和优化线性和键盘辅助用户体验。

屏幕阅读器、键盘和其他辅助技术用户,可以在不使用传统鼠标或触摸屏的情况下,处罚导航并与应用程序交互。能够通过使用标签、箭头和其他常见的导航按钮,完成他们在应用程序中的使用目标。通过有策略地排序元素位置简化流程,并降低整个页面的复杂性。

通过使用预定义的选项卡排序,避免增加更多的操作,除非用户操作需要特殊定制。默认阅读顺序遵循DOM(内容在源代码中编写的顺序),通常从左到右;从上到下。键盘导航可以在公共组件中预先定义。使用默认模式(详见:UI 学习 二 可访问性 模式-CSDN博客),除非有打破默认模式的用户体验模式或自定义组件。

3.1 用例分组

用例分为主要和次要用户操作重要性。用例的优先级应该影响关于用户操作优先级的决策。

3.2 定义初始焦点和组件级焦点

焦点是指哪个控件是当前用户交互的活动目标,例如鼠标点击或键盘点击。通常,tab键在交互元素之间移动焦点。

定义用户加载屏幕时的初始焦点,以及具有多个交互元素(如复杂的卡片或对话框)的组件的初始焦点。

在Google主页的例子中,尽管在页面的搜索字段上方和周围有链接和按钮,但应将用户最初的注意力放在支持最常见用户目标的元素上。

当元素由用户激活或用户更改上下文时,焦点尤为重要。

例如,当一个对话框被触发时,检查以下内容:

  1. 焦点被设置为对话框组件,可能是对话框中的特定交互元素,例如文本输入字段或编辑按钮
  2. 当用户关闭或取消对话框时,焦点将返回到启动该操作的交互元素

 1、定义初始焦点和组件级焦点

3.3 定义非典型键盘导航

用户应该能够使用选项卡、方向键和其他键盘快捷键完成主要和次要用户操作。

 通过标签导航卡片上的交互元素,体现操作顺序和操作重要性。

Tab通常在交互元素之间移动焦点,通常用作主要导航。Tab + Shift反转方向。

箭头键通常用于在组件中导航(例如,在表单中的单元格之间移动或遍历菜单中的选项)。

点击激活链接或按钮,或者在表单提交按钮具有焦点时提交表单。

在独特布局和用例的情况下,可以帮助将一组交互元素分组为单个选项卡。

并使用箭头键遍历子元素。

  1. 使用Tab导航进行焦点组
  2. 使用箭头键遍历子元素

四 元素

添加辅助功能标签、定义角色并指示装饰元素

需要标签的视觉元素

  1. 没有可见文本或文本中没有足够上下文的交互式图标或按钮(例如,带有铅笔图标的编辑按钮)
  2. 交互式图像
  3. 视觉提示(包括进度条和错误处理)
  4. 有意义的图标,(例如:e.g., 状态图标)
  5. 有意义的图像(例如:图表、图片和插图)

文本元素需要标签来添加额外的上下文

  1. 一般链接,如(例如:“了解更多”)
  2. 带有通用文本的按钮(例如:“保存” 当页面上有多个这样的按钮时)

不需要标签的元素

  1. 非交互式UI文本,因为这将由屏幕阅读器自动读取
  2. 带有足够文字的按钮,(例如:“下载图像”)

注意:本文使用通用术语的可访问性标签来指代几种不同的类型,包括ARIA标签和alt标签。当可访问性标签在代码中实现时,它们将被转换为平台的适当类型。此外,角色这个术语用于涵盖web应用程序的一般组件控制类型和ARIA角色。

4.1 标签元素

易访问性标签帮助那些不能依赖产品视觉界面的用户。

周到的标签有助于使基于文本的体验与视觉体验一样可用。

标签应该简明地描述元素的内容、目的和行为。

示例:这些图标的可访问性标签描述了它们的用途,而不是图标的外观(例如,“放大镜”)。

4.2 为有意义的图像和交互元素添加标签

在视觉上添加标签,以传达意义或增强内容。

标签应该简洁,具有描述性,并传达图像的内容和背景。

这适用于在支持文档中找到的信息图图形和其他有指导意义的图像。

 标签“语音搜索”描述了与输入法(语音)配对的用户任务(搜索)。

不要在标签中包含元素类型(按钮、菜单等)。这将通过为元素分配适当的角色而自动添加。

 microphone:麦克风

隐藏图像

装饰性的图标和图像不能增强视障用户的体验,应该标注为装饰性,以便将它们隐藏在代码中。

不太理解……装饰性元素是点击无效果吗?

 将装饰性视觉元素标记为“隐藏”。

4.3 为交互元素分配角色

ARIA角色适用于web应用程序,并指定如何在HTML之上增加网页的可访问性。

  1. 对于web,为所有交互元素分配ARIA角色
  2. 对于非web,根据您的设计系统组件(按钮,滑块,菜单等)分配角色。

分配ARIA角色(web)或组件类型(移动端)来将期望的交互模式传递到操作中。请注意,有些视觉元素可能看起来相同,但行为不同。

通过为交互元素分配角色来定义它的类别,可以帮助使用辅助技术的用户建立对如何与该元素交互的期望,并预测交互时可能发生的事情。

 不要在标签中包含控件类型。屏幕阅读器会自动添加控件,所以您可以让它重复(例如:“Got it button button”,差不多就是“点我!点我!”)

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

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

相关文章

Verilog——信号类型

Verilog HDL 的信号类型有很多种,主要包括两种数据类型:线网类型 (net type) 和寄存器类型 ( reg type )。在进行工程设计的过程中也只会使用到这两个类型的信号。 4.1 信号位宽 定义信号类型的同时,必须定义好信号…

使用决策树模型绘制混淆矩阵、ROC曲线、特征变量重要性排序图

大家好,我是带我去滑雪! 决策树模型可以处理各种类型的特征(连续型、离散型、类别型等),不需要对特征进行过多的预处理工作,因此非常适合初步探索数据。通过绘制混淆矩阵、ROC曲线和特征变量重要性排序图&a…

基于java+springboot+vue实现的高校自习室预约系统(文末源码+Lw+ppt)23-428

摘 要 高校自习室预约系统采用B/S架构,数据库是MySQL。网站的搭建与开发采用了先进的java进行编写,使用了springboot框架。该系统从两个对象:由管理员和学生来对系统进行设计构建。主要功能包括:个人信息修改,对用户…

DNA序列修正——HashMap应用

题目链接:1.DNA序列修正 - 蓝桥云课 (lanqiao.cn) 利用HashMap的特性,将字母匹配转换成数字匹配 A T 0 1 C G 1 2 3 另外,Java中没有交换(swap)函数,需要自己进行编写。 程序代码: pac…

【电路笔记】-MOSFET作为开关

MOSFET 作为开关 文章目录 MOSFET 作为开关1、概述2、MOSFET特性曲线2.1 截住区域2.2 饱和区域3、MOSFET作为开关的示例4、功率MOSFET电机控制5、P沟道MOSFET作为开关6、互补MOSFET作为开关电机控制器当 MOSFET 在截止区和饱和区之间工作时,MOSFET 是非常好的电子开关,用于控…

mybatis项目中配置sql提示

2023版的idea好像内置了这个功能。 第一步: 第二步:第一步完成后user会爆红,这时我们需要连接数据库。

TypeScript中的 K、T 、V

文章目录 前言泛型类型链接关系K、T、V 含义自动类型推断泛型的应用场景容器类和数据结构函数和方法接口和类类型约束和扩展常用的工具类型 前言 在 TypeScript 的泛型里经常会碰到一些字母,比如 K、T、V,是不是觉得很奇怪? 泛型类型 图中的…

ChatGPT提示词方法的原理

关于提示词,我之前的一些文章可以参考: 【AIGC】AI作图最全提示词prompt集合(收藏级)https://giszz.blog.csdn.net/article/details/134815245?ydrefereraHR0cHM6Ly9tcC5jc2RuLm5ldC9tcF9ibG9nL21hbmFnZS9hcnRpY2xlP3NwbT0xMDExL…

力扣● 583. 两个字符串的删除操作 ● 72. 编辑距离 ● 编辑距离总结篇

● 583. 两个字符串的删除操作 注意审题: 给定两个单词 word1 和 word2 ,返回使得 word1 和 word2 相同所需的最小步数。 每步 可以删除任意一个字符串中的一个字符。 删除最少的字符使两者相同,说明留下来的就是最大公共子序列。不要求…

13 秒插入 30 万条数据,这才是 Java 批量插入正确的姿势!

本文主要讲述通过MyBatis、JDBC等做大数据量数据插入的案例和结果。 30万条数据插入插入数据库验证 实体类、mapper和配置文件定义 User实体 mapper接口 mapper.xml文件 jdbc.properties sqlMapConfig.xml 不分批次直接梭哈 循环逐条插入 MyBatis实现插入30万条数据 J…

代码资源集合

代码资源 通信QPSKOQPSKMSK信道编码GMSK 雷达LFM及干扰技术LFM射频噪声干扰噪声调幅干扰噪声调频干扰噪声调相干扰固定移频干扰间歇采样干扰 SAR成像RD算法CS算法wk算法 SAR干扰技术射频噪声干扰调幅噪声干扰调频噪声干扰调相噪声干扰噪声卷积干扰乘积干扰移频干扰 DOA估计功率…

电学基础知识

目录 电流 前言 电流的产生 电流的单位安培(A) 电路和电池 开路和闭路 电灯泡原理 对电池容量的理解 毫安时 毫瓦时 直流电和交流电 AC交流电 DC直流电 直流电和交流电对比 电压 对电器的电压和电流的理解 电阻 电压电阻电子的关系 欧…

python--剑指offer--中等--07. 重建二叉树

输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 例如,给出 前序遍历 preorder [3,9,20,15,7] 中序遍历 inorder [9,3,15,20,7] 返回如下的二叉树: 3/ 9 20 / 15 7 …

47.全排列II

// 定义一个Solution类&#xff0c;用于解决给定不重复整数数组的全排列问题 class Solution {// 初始化结果集&#xff0c;用于存放所有不重复的全排列组合List<List<Integer>> result new ArrayList<>();// 初始化路径变量&#xff0c;用于暂存当前递归生…

Vulnhub靶机:Kioptrix_Level1.3

一、介绍 运行环境&#xff1a;Virtualbox 攻击机&#xff1a;kali&#xff08;192.168.56.101&#xff09; 靶机&#xff1a;Kioptrix_Level1.3&#xff08;192.168.56.109&#xff09; 目标&#xff1a;获取靶机root权限和flag 靶机下载地址&#xff1a;https://www.vul…

2024.3.18

1、试编程 封装一个动物的基类&#xff0c;类中有私有成员:姓名&#xff0c;颜色&#xff0c;指针成员年纪再封装一个狗这样类&#xff0c;共有继承于动物类&#xff0c;自己拓展的私有成员有:指针成员:腿的个数(整型intcount)&#xff0c;共有成员函数:会叫:void speak() 要求…

yocto系列之针对tarball编写recipes

回顾 针对借助yocto构建linux 镜像我们已经讲述了6部分&#xff0c; 简单回顾如下&#xff1a; Yocto: 第1部分 - yocto系列之yocto是个什么东东 https://mp.csdn.net/mp_blog/creation/editor/136742286 Yocto: 第2部分 - yocto系列之配置ubuntu主机 https://mp.csdn.net…

弗洛伊德-华沙算法求任意两点之间的最短路径算法

对于弗洛伊德-华沙算法首先是要假设研究的图中是不包含有负边的&#xff0c;对于所给的图中的任意亮点v1&#xff0c;vm&#xff0c;假设两点之间存在一条连通路径&#xff0c;对于该路径中去掉头和尾节点&#xff0c;也就是v1&#xff0c;vm&#xff0c;剩下的节点也就称之为这…

JNDI注入原理及利用IDEA漏洞复现

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收…

自定义全能搜索HTML源码

基础功能 可自定义通过筛选搜索&#xff0c;内容结果以嵌入方式展示&#xff0c;并不会直接跳转该地址显示&#xff0c;将以内嵌页面形式浏览&#xff0c;可自行添加其他地址搜索&#xff01;也可以做搜索引导页等等&#xff01; 界面布局&#xff1b; 源码为自适应端&#…