当前位置: 首页 > news >正文

创建符合 Web 可访问性标准的 HTML 布局

人们常说网络可访问性是当今万维网的“必须”。“Web 可访问性”一词定义了开发人员需要遵循的一组准则,以使残障人士和 Web 应用程序的交互更加方便。任何网站的内容、UI/UX 设计和布局都应该易于访问。在本文中,Logicify团队为 HTML/CSS 开发人员提供了一些实用技巧,使 Web 布局对于人们和辅助设备来说都更易于访问。

保持标记干净
无论您使用什么标记,都要正确、整齐地构建它,避免跳过级别。始终偏爱原生元素(如果有的话)而不是伪造它们。例如,使用<button>元素代替HTML 中的<span>或。<div>用于<nav>导航、<button>页面操作。

区分<strong>or<em>元素与<bold>or <i>。前两者用于对内容进行语义强调,后两者用于视觉强调。

一些明显的事情已经成为最佳实践:
确保横幅中的公司徽标链接回网站主页。
使用该<lang>属性告诉浏览器网站上使用哪种语言。
如果您想在视觉上隐藏内容并对屏幕阅读器隐藏,请使用该hidden属性。
为长页面添加锚链接(跳转链接),以便用户可以跳过不需要的内容并继续进行相关部分。
注意页面语义
用户和机器(屏幕阅读器、盲文显示器)都应该能够识别页面结构。通过使用页面上的分段( <header>、<footer>、<article>、 )和标题元素来创建语义布局。<nav>这有助于定义网页的清晰层次结构并区分主要(主要:<h1>, <h2>, <article>)和次要(不太重要:<h3>- <h6>, <footer>)内容。

页面布局中语义的示意图。

注意页面布局中的语义

当您在页面中使用标题时,请勿使用<h>格式(字体样式和大小)伪造标题属性 ( ) 的实际标记,因为这不允许辅助技术识别这些是标题。

在适当的情况下在网页上使用 ARIA 地标。ARIA(可访问的富互联网应用程序)是一个全面的技术规范,用于向本来无法访问的元素(特别是使用 JavaScript、AJAX 和 DHTML 开发的元素)添加可访问性信息。借助 ARIA 地标,开发人员可以扩展 HTML 功能并将正确的语义(即属性)应用于 UI 和内容元素,以便辅助技术理解这些内容。

以下示例说明了如何将 HTML 语义元素 ( <header>、<nav>、<main>、<footer>) 与 ARIA 角色属性(“banner”、“navigation”、“main”、“contentinfo”)相结合,以便残障人士更轻松地使用屏幕阅读器进行网站导航。

页面布局中的 HTML 元素和 ARIA 地标示例。

在页面布局中组合 HTML 元素和 ARIA 地标

尽管大多数 ARIA 功能最近都是在 HTML5 中实现的(您绝对应该喜欢这些!),但并非所有屏幕阅读器和浏览器(例如 IE)都足够复杂到仅依赖于 HTML 语义。适当使用 ARIA 的一些示例包括分配角色来描述某些类型的小部件(“菜单”、“树项目”、“滑块”)、定义描述拖动源和放置目标的拖放属性以及添加警报以通知有关动态页面更改的辅助技术。

支持选项卡导航
使元素的 Tab 顺序(也称为文档对象模型或 DOM 顺序)与视觉顺序一致。从 Tab 键顺序中删除不必要的元素,以免使使用 Tab 或辅助设备导航的用户感到困惑。

使导航元素的焦点可见。您可以为此使用第三方插件或为 <outline>选项卡式导航(或其替代方案)时具有焦点的页面元素和链接提供视觉反馈的属性。

使用该<tabindex>属性可以使链接、按钮和表单字段等元素可通过 Enter 键和/或空格键获得焦点和选择。<tabindex>即使具有属性和 0整数值的不可聚焦元素也可以成为可聚焦的,例如<h3 tabindex="0">A focusable heading</h3>

如果页面上有弹出窗口,导航优先级应允许首先关闭它们。完成此操作后,理想情况下焦点应该跳回到用户被打开的模式窗口中断的网页元素。为此,请将最后一个焦点元素存储在变量中。

为图像添加替代文本
屏幕阅读器几乎可以访问页面上的所有内容——图形信息除外。因此,不要忘记为图像和其他图形添加替代文本( alt 属性)。<img>这不仅可以帮助使用辅助技术“阅读”屏幕的人,还可以帮助互联网连接较差的用户。您的网站还将通过图像替代文本进行 SEO 优化。

图像替代文本应该精确、简洁,并反映添加图像的主要目的。根据上下文,同一个图像可能有不同的替代文本,例如,如果公司徽标放置在标题中并将用户返回到主页,则其准确的替代文本可能是“<img alt=”Company X徽标 - 主页。">`

在替代文本中,避免多余的“图像”或“图片”——无论哪种方式,辅助技术都会警告用户存在图像。
以句点结束替代文本。这将使屏幕阅读器在替代文本中的最后一个单词后暂停一下,从而为用户提供更愉快的体验。
具有多个可点击区域的图像的替代文本(例如图像映射)应为这些链接提供完整的描述。此外,每个可点击区域都应该有相应的替代文本来描述其目的或目的地。
避免文字图像;如果您不能没有它们,则替代文本应包含与图像中完全相同的单词。
如果您有多个图像传达一条信息,则组中第一个图像的替代文本应包含整个组的信息。
要熟悉替代文本的普遍接受的标准,您可以随时检查此替代文本决策树。
虽然必须为所有对理解内容很重要的图像添加替代文本,但对于与内容不直接相关的菜单图标或装饰图像(如封面)则不需要这样做。对于此类图像,只需使用空<img alt>属性即可

相关文章:

创建符合 Web 可访问性标准的 HTML 布局

人们常说网络可访问性是当今万维网的“必须”。“Web 可访问性”一词定义了开发人员需要遵循的一组准则&#xff0c;以使残障人士和 Web 应用程序的交互更加方便。任何网站的内容、UI/UX 设计和布局都应该易于访问。在本文中&#xff0c;Logicify团队为 HTML/CSS 开发人员提供了…...

SQL学习(CTFhub)整数型注入,字符型注入,报错注入 -----手工注入+ sqlmap注入

目录 整数型注入 手工注入 为什么要将1设置为-1呢&#xff1f; sqlmap注入 sqlmap注入步骤&#xff1a; 字符型注入 手工注入 sqlmap注入 报错注入 手工注入 sqlmap注入 整数型注入 手工注入 先输入1 接着尝试2&#xff0c;3&#xff0c;2有回显&#xff0c;而3没有回显…...

数字人部署之VITS+Wav2lip数据流转处理以提高实时性

一、模型 VITS模型训练教程VITS-从零开始微调&#xff08;finetune&#xff09;训练并部署指南-支持本地云端 Wav2lip是2D数字人&#xff0c;可参考训练嘴型同步模型Wav2Lip PS:以上模型都是开源可用。 二. VITS数据处理问题 VITS模型的输出为一维的numpy类型数据&#xff…...

GPT 学习法:复杂文献轻松的完美理解、在庞大的不确性中找到确定性

GPT 学习法&#xff1a;复杂文献轻松的完美理解、在庞大的不确性中找到确定性 复杂文献 - 基础理解GPT 理解法 - 举例子、归纳、逻辑链推导本质、图示、概念放大器GPT 分析法 - 二分、矩阵、公式、要素、过程 做复杂题&#xff1a;在庞大的不确性中找到确定性思维追踪&#xff…...

前端简单的爱心形状

首先需要创建一个 HTML 文件&#xff0c;然后在其中添加 CSS 样式和 JavaScript 代码。以下是一个简单的示例&#xff1a; 创建一个名为 loveheart.html 的文件 <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><…...

acwing算法基础之数学知识--求数a的欧拉函数值phi(a)

目录 1 基础知识2 模板3 工程化 1 基础知识 数a的欧拉函数 ϕ ( a ) \phi(a) ϕ(a)&#xff1a;表示1~n中与n互质的数的个数。其中两个数互质&#xff0c;是指这两个数的最大公约数为1。 根据定义&#xff0c;我们可以写出如下方法&#xff0c; int gcd(int a, int b) {retu…...

Jenkins的介绍与相关配置

Jenkins的介绍与配置 一.CI/CD介绍 &#xff11;.CI/CD概念 ①CI 中文意思是持续集成 (Continuous Integration, CI) 是一种软件开发流程&#xff0c;核心思想是在代码库中的每个提交都通过自动化的构建和测试流程进行验证。这种方法可以帮助团队更加频繁地交付软件&#x…...

开源网安受邀参加网络空间安全合作与发展论坛,为软件开发安全建设献计献策

​11月10日&#xff0c;在广西南宁举办的“2023网络空间安全合作与发展论坛”圆满结束。论坛在中国兵工学会的指导下&#xff0c;以“凝聚网络空间安全学术智慧&#xff0c;赋能数字经济时代四链融合”为主题&#xff0c;邀请了多位专家及企业代表共探讨网络安全发展与数字经济…...

arcgis提取栅格有效边界

方法一&#xff1a;【3D Analyst工具】-【转换】-【由栅格转出】-【栅格范围】 打开一幅栅格数据&#xff0c;利用【栅格范围】工具提取其有效边界&#xff08;不包含NoData值&#xff09;&#xff1a; 方法二&#xff1a;先利用【栅格计算器】将有效值赋值为1&#xff0c;得到…...

后端接口性能优化分析-问题发现问题定义

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱吃芝士的土豆倪&#xff0c;24届校招生Java选手&#xff0c;很高兴认识大家&#x1f4d5;系列专栏&#xff1a;Spring源码、JUC源码&#x1f525;如果感觉博主的文章还不错的话&#xff0c;请&#x1f44d;三连支持&…...

中国首个通过ASIL D认证的IP发布,国产芯片供应商的机会来了

来自智能汽车的“芯”安全需求正在快速爆发。 一方面&#xff0c;随着智能汽车ADAS的快速迭代与逐渐普及化&#xff0c;以及越来越多元化智能座舱功能的快速上车&#xff0c;由此带来的车辆信息安全场景也在与日俱增&#xff0c;例如云端链接、设备身份认证、自动驾驶安全保障…...

[单片机课程设计报告汇总] 单片机设计报告常用硬件元器件描述

[单片机课程设计必看] 单片机设计报告常用描述 硬件设计 AT89C51最小系统 AT89C51是美国ATMEL公司生产的低电压&#xff0c;高性能CMOS16位单片机&#xff0c;片内含4k bytes的可反复擦写的只读程序存储器和128 bytes的随机存取数据存储器&#xff0c;期间采用ATMEL公司的高…...

Docker学习——⑧

文章目录 1、什么是 Docker Compose(容器编排)2、为什么要 Docker Compose&#xff1f;3、Docker Compose 的安装4、Docker Compose 的功能和使用场景5、Docker Compose 文件&#xff08;docker-compose.yml&#xff09;5.1 文件语法版本5.2 文件基本结构及常见指令 6、Docker …...

力扣刷题第二十一天--栈与队列

前言 周末玩了两天&#xff0c;s赛看的难受。。。还是和生活对线吧 内容 一、用栈实现队列 232.用栈实现队列 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作&#xff08;push、pop、peek、empty&#xff09;&#xff1a; 实现 MyQueue 类&#…...

Python基础-解释器安装

一、下载 网址Welcome to Python.orgPython更新到13了&#xff0c;我们安装上一个12版本。 这里我保存到网盘里了&#xff0c;不想从官网下的&#xff0c;可以直接从网盘里下载。 链接&#xff1a;百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间…...

MySQL(14):视图

数据库对象 对象描述表(TABLE)表是存储数据的逻辑单元&#xff0c;以行和列的形式存在&#xff0c;列就是字段&#xff0c;行就是记录数据字典就是系统表&#xff0c;存放数据库相关信息的表。系统表的数据通常由数据库系统维护&#xff0c;程序员通常不应该修改&#xff0c;只…...

Blazor 附件上传和下载功能

效果图 page "/uploadFile" inject Microsoft.AspNetCore.Hosting.IWebHostEnvironment WebHostEnvironment inject ToastService ToastService inject DownloadService DownloadService<h3>UploadFile</h3><Button OnClick"ButtonClick" C…...

Git 安装配置

目录 Linux 平台上安装 Debian/Ubuntu Centos/RedHat 源码安装 Windows 平台上安装 Mac 平台上安装 Git 配置 用户信息 文本编辑器 差异分析工具 查看配置信息 在使用Git前我们需要先安装 Git。Git 目前支持 Linux/Unix、Solaris、Mac和 Windows 平台上运行。 Git …...

Center Smoothing Certified Robustness for Networks with Structured Outputs

文章目录 Center Smoothing: Certified Robustness for Networks with Structured OutputsSummaryResearch ObjectiveProblem StatementMethodsEvaluationConclusionNotesGaussian Smoothing常用希腊字母霍夫丁不等式&#xff08;Hoeffdings inequality&#xff09;1.简述2.霍夫…...

C#几种截取字符串的方法

在C#编程中&#xff0c;经常需要对字符串进行截取操作&#xff0c;即从一个长字符串中获取所需的部分信息。本文将介绍几种常用的C#字符串截取方法&#xff0c;并提供相应的示例代码。 目录 1. 使用Substring方法2. 使用Split方法3. 使用Substring和IndexOf方法4. 使用Regex类…...

Python爬虫实战:研究MechanicalSoup库相关技术

一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

Qt Widget类解析与代码注释

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码&#xff0c;写上注释 当然可以&#xff01;这段代码是 Qt …...

深入理解JavaScript设计模式之单例模式

目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式&#xff08;Singleton Pattern&#…...

React19源码系列之 事件插件系统

事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...

3-11单元格区域边界定位(End属性)学习笔记

返回一个Range 对象&#xff0c;只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意&#xff1a;它移动的位置必须是相连的有内容的单元格…...

现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?

现有的 Redis 分布式锁库&#xff08;如 Redisson&#xff09;相比于开发者自己基于 Redis 命令&#xff08;如 SETNX, EXPIRE, DEL&#xff09;手动实现分布式锁&#xff0c;提供了巨大的便利性和健壮性。主要体现在以下几个方面&#xff1a; 原子性保证 (Atomicity)&#xff…...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)

考察一般的三次多项式&#xff0c;以r为参数&#xff1a; p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]&#xff1b; 此多项式的根为&#xff1a; 尽管看起来这个多项式是特殊的&#xff0c;其实一般的三次多项式都是可以通过线性变换化为这个形式…...

探索Selenium:自动化测试的神奇钥匙

目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...

API网关Kong的鉴权与限流:高并发场景下的核心实践

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中&#xff0c;API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关&#xff0c;Kong凭借其插件化架构…...