0

0

可操作性:无障碍性,第四部分

WBOY

WBOY

发布时间:2023-09-24 17:49:02

|

1480人浏览过

|

来源于php中文网

原创

可操作性:无障碍性,第四部分

从广义上讲,这是您的网站必须能够安全所有用户导航的原则。这包括仅使用键盘即可访问整个网站的准则。此外,您的网站响应用户输入(通过键盘或其他方式)的方式应该是可预测的、清晰的和安全的。

最后一点主要是指确保默认情况下禁用网站上任何可能引起癫痫发作的功能,并在启用之前向用户发出警告。该原则还提供了为用户提供“足够的时间”来完成任务的指导原则,但我们在此不做介绍。

键盘辅助功能 (2.1)

仅使用键盘即可导航和使用您的网站是可访问性最重要的方面之一。盲人用户几乎完全依赖键盘,而那些有运动障碍的用户可能难以控制鼠标,因此也依赖键盘访问。有些人可能很少或根本不使用双手,而是依赖较大的键盘、口棒、头棒、单开关或 Sip 'n' Puff。

您可以在 WebAIM 网站上找到这些设备的说明,但它们本质上都是将用户输入转化为键盘敲击。如果您的网站无法通过键盘访问,那么所有依赖这些设备的用户将无法使用您的网站。

幸运的是,使您的主题或插件键盘可访问相对简单。以下是一些要点:

确保可以通过键盘访问整个菜单

许多主题依靠将鼠标悬停在菜单项上来显示任何子菜单。这很好,但通常如果父菜单项获得焦点(而不是悬停),则子菜单将不会出现。如果您复制 :hover 的任何相关规则并将其应用到 :focus ,这将让您成功一半:子菜单项将显示为整个菜单中的用户选项卡。但是,一旦用户向下切换到子菜单,父菜单就会失去焦点,子菜单也会消失。这可以使用 JavaScript 来纠正。本系列的下一篇文章将详细介绍这一点以及如何提供非 JavaScript 后备。

不要“陷阱”用户

您不需要执行任何操作即可使“本机”表单输入(选择、输入、单选等)键盘可访问。但是,如果页面的任何方面(包括表单字段)获得焦点,必须仅使用键盘即可将其移开,否则用户实际上会陷入困境。这通常是默认行为,因此您应该避免覆盖它。

使导航变得简单明了(2.4)

该指南有两种类型的建议:明确用户当前所在的位置,以及更轻松地到达他们想去的地方。

在执行此操作时遵循建议的一部分涉及许多主题已经做的事情:跨页面拥有一致的导航菜单,突出显示当前页面,并允许用户快速确定他们在网站上的位置(例如使用面包屑) .

样式:适当聚焦

能够使用键盘浏览网页的一个关键部分是能够准确地看到当前获得焦点的内容。当前获得焦点的元素应该明显不同,并且可以与页面的其余部分区分开来。因此,您应该避免 outline:none; 除非您要提供替代样式:

a:focus{ 
    outline: none; 
    background: #ee7b00; 
    color: #fff; 
}

焦点顺序和 Tabindex

键盘辅助功能的另一个重要部分是 Tab 键的行为可预测且自然。例如,如果焦点当前是表单字段,我希望下一个选项卡应该将我带到该表单中的下一个字段。如果按 Tab 键导致焦点在页面上不规则地上下跳跃,那么这会让用户感到沮丧和迷失方向。

避免使用 tabindex:tabindex 属性允许您更改通过 Tab 键访问元素的顺序。但是,如果您遵循本系列第 2 篇文章中有关 DOM 结构的建议,则 Tab 键顺序应反映页面的“自然”顺序。虽然 tabindex 有它的用途,但这些用途很少,而且它用于“修补”不良站点结构可能会产生更多问题。最好的方法是避免使用 tabindex,而是让您的主题生成逻辑 DOM 结构,并使用 CSS 来改变视觉呈现。

避免“阅读更多”或“继续阅读”

屏幕阅读器用户经常会在链接之间跳转,跳过其间的文本,并且在每个链接处屏幕阅读器都会读出“链接 [链接文本]”。因此,如果这些用户反复听到“链接阅读更多”、“链接点击此处”或“链接继续阅读”,这对他们来说是非常没有帮助的。在这种情况下,向链接添加上下文只需提供帖子的标题。因此,我们没有“继续阅读”,而是“继续阅读[帖子标题]”。

要在 WordPress 主题中执行此操作,我们只需连接 excerpt_more 过滤器并附加我们的“继续阅读”链接:

//Adds "continue reading X" link 
function mytheme_continue_reading_link() { 
    return '

' . sprintf( __( 'Continue reading %s', 'mytheme' ), esc_url( get_permalink() ), esc_html( get_the_title() ) ) .'

'; } //Replaces "[...]" (appended to automatically generated excerpts) with an ellipsis and mytheme_continue_reading_link(). function mytheme_auto_excerpt_more( $more ) { return ' …' . mytheme_continue_reading_link(); } add_filter( 'excerpt_more', 'mytheme_auto_excerpt_more' );

这为“阅读更多”链接提供了正确的上下文。不过,还可以进行一些改进。

首先,添加文章标题通常会破坏主题的美感,并且对于有视力的用户来说,这是多余的,因为“阅读更多”链接相对于文章标题和摘录的位置将使上下文显而易见。为了解决这些问题,我们可以“隐藏”文章标题,但屏幕阅读器仍然会阅读它们。

这意味着我们不能使用 display:none 或visibility:hidden; 作为屏幕-读者了解这些属性并会忽略内容。相反,我们可以将文本放置在屏幕外或使用 clip 属性:

.screen-reader {
    position: absolute!important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    border: 0;
}

“屏幕阅读器类”有很多不同的示例;这个特定的类取自 Bootstrap 3。接下来,将适当的类添加到文章标题中,具体将上面的第 5 行替换为:

兴泰网络办公系统1.61
兴泰网络办公系统1.61

基于 Internet 的 Web 技术,完全采用B/S 体系结构的网络办公系统。该系统具有安全性高、功能极为强大、可在广域网中使用也可在局域网中使用、也可以同时在局域网和广域网中使用的特点,全傻瓜式安装,无需作复杂配置,界面采用类似windows资源管理器的设计,结构清晰,条理分明,即使不熟悉电脑的人也可很快掌握全部操作。该系统通过在广域网内的广泛试用验证和经专业技术人员的调试、测试,确认具有很

下载
__( 'Continue reading %s', 'mytheme' ), 

其次,虽然这将为用户提供链接指向何处的指示,但他们仍然必须在到达帖子标题之前收听“链接继续阅读...”。理想情况下,您应该将冗余信息放在链接文本的末尾,或者从锚标记中完全省略它,以减少识别链接所需的时间。

对于屏幕阅读器用户来说,不在链接文本前面添加冗余信息的另一个好处是屏幕阅读器通常会在页面上生成链接列表。如果您的许多链接都以相同的文本开头,这可能会使找到所需链接变得更加困难,特别是如果您的联系页面的链接位于“H”下方,因为它显示“如何联系我们”。

正确使用 标签

应使用 标签来识别用户的当前位置。该信息由屏幕阅读器读出,并显示在搜索结果以及屏幕窗口和浏览器选项卡中。为了让用户轻松识别他们所在的位置(或搜索到的内容),此标题标签应包含页面的标题和网站名称。理想情况下,网站名称应该放在最后,这样使用屏幕阅读器的人就不必在每次页面加载时先听您网站的名称,然后才能听到页面标题。

标题标签可以添加到主题中:

<?php wp_title(); ?>

要添加网站标题:

/** * Append site title to page title */ 
function mytheme_wp_title( $title, $sep, $seplocation ){ 
    return $title . ' | ' . get_bloginfo('name'); 
} 
add_filter( 'wp_title', 'mytheme_wp_title', 10, 3 );

跳到内容

通常,网站会有一个通用的标题和导航菜单,除了突出显示用户当前位置之外,它们将保持完全相同。必须通过选项卡浏览所有这些链接,或者在每次页面加载时听屏幕阅读器重复它们,是乏味且令人沮丧的。我们这些拥有良好(足够)视力和运动技能的人可以立即跳转到内容,并且我们可以让那些没有良好视力和运动技能的人也能轻松完成此操作。

如果您在 WordPress 管理员中,并在页面加载后按 Tab,您会注意到顶部会出现一个链接,其中显示跳到主要内容 -left(如果再次按 Tab,将出现跳到工具栏链接)。该链接位于页面的最顶部,因此它是选项卡切换时获得焦点的第一个链接,也是屏幕阅读器读出的网站的第一个链接。通过该链接,用户可以直接跳转到主要内容,跳过中间所有不必要的链接和网站徽标。

创建跳转到内容是让您的网站更易于导航的好方法,而且非常简单,只需要少量 HTML 和一些 CSS。

首先是 HTML。该链接应位于页面的最顶部,紧邻 标签下方。在大多数主题中,这将是 header.php 文件:

 

 

     
    
    //Rest of page content

这里唯一需要注意的是:

  1. href 值,在本例中为“main”。这必须与包含页面内容的元素的 ID 匹配。
  2. 链接的类,我们将使用它来设置样式。

关于 (1),您的循环将类似于:

//The Loop //No posts found... display search

您的页面模板可能类似于:

>

现在剩下的就是向链接添加一些样式。

首先,我们希望链接隐藏,但不对屏幕阅读器隐藏,因此我们会将链接放置在屏幕外,而不是使用 display:none(在这种情况下,屏幕阅读器会忽略它)。

其次,当它获得焦点时,我们希望使链接变得明显,因此很明显以前隐藏的链接现在可见并具有焦点。

.skip-link { 
    position: absolute; 
    left:6px; 
    top:-100px; /* position offscreen so it's not visible, but can receive focus*/ 
    z-index: 100000; /* Position above WordPress' toolbar */ 
    font-size: 1em; 
    font-weight: bold; 
    display: block; 
    background: #ee7b00; 
    color: white; /*Style the link so that's clear*/ 
    height: auto; 
    width: auto; 
    line-height: normal; 
    padding: 15px 25px; 
    text-decoration: none;
    -webkit-transition: top 1s ease-out; 
    transition: top 1s ease-out; 
} 

.skip-link:focus { 
    top: 5px; /* Move onto screen */ 
    -webkit-transition: right 0s; 
    transition: right 0s; /*Animate, to make its appearance obvious */ 
}

确保网站导航安全 (2.3)

最后,请注意,有些人容易患光敏性癫痫发作。这可能是由闪烁或闪光效果引起的。去年 12 月,杰夫·钱德勒 (Jeff Chandler) 在一名访客警告杰夫·钱德勒 (Jeff Chandler) 取消了 WP Tavern 的“雪”效果可能引发癫痫发作后。

这不仅限于癫痫发作,它还可能引发某些人的偏头痛或惊恐发作。它也不限于雪花效果 - 视频、轮播或音频文件自动播放也可以触发这些效果。

虽然这主要是编辑的决定,并且作为开发者,阻止自动播放不是我们的工作,但我们至少可以通过默认禁用它来阻止它。 Jeff 在他的文章中提到,他找不到提供访问者自己可以玩的“雪”效果的插件。

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

2596

2023.09.01

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

1623

2023.10.11

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

1509

2023.10.11

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

952

2023.10.23

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

1417

2023.10.23

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

1234

2023.11.03

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1447

2023.11.09

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1306

2023.11.13

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

27

2026.01.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 8.7万人学习

国外Web开发全栈课程全集
国外Web开发全栈课程全集

共12课时 | 1.0万人学习

Webpack4.x---十天技能课堂
Webpack4.x---十天技能课堂

共20课时 | 1.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号