我正试图让一个咏叹调生活区域与JAWS 11和IE8正常工作.
使用下面的代码,我可以让JAWS在单击按钮时宣布新值,但行为不是我所期望的.
<!DOCTYPE html>
<html>
<head></head>
<body>
<button onclick="document.getElementById('statusbar').innerHTML = parseInt(document.getElementById('statusbar').innerHTML) + 1">Update</button>
<div id="statusbar" aria-live="polite">0</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
使用我的JAWS11/IE8配置,每按一下按钮,我听到:
Click number HTML Value (after click) JAWS says ------------ ------------------------- --------- 1 1 "Update button 0" 2 2 "1" 3 3 "2"
问题,我的问题是:如何让JAWS公布aria-live区域的当前值,而不是aria-live区域的先前值?
我也对其他屏幕阅读器如何处理这个功能感兴趣.
当使用HTML5属性来标记具有必填字段的表单时,Firefox中的JAWS 14(以及可能的其他人)在用户第一次关注它们时(即用户第一次遇到该字段时)将空字段宣布为"无效条目".
<input type="text" required value="">
Run Code Online (Sandbox Code Playgroud)
使用aria-required="true"避免讨厌的消息(并且JAWS仍然通知用户该字段是必需的),但是您丢失了HTML5表单验证功能(阻止表单提交,浏览器生成的工具提示以指导用户等).
我已经读过aria-invalid用JavaScript设置愚弄JAWS的黑客攻击,但我真的想避免focus在有很多输入的页面上的每个字段上观察用户交互(事件等).目前我使用<label>Label text <span style="display:none;">required field</span></label>但这是一个非常hacky,非语义的解决方案(更不用说我失去了HTML5的好处required).
请考虑以下标记.
<label for="i1" class="inforLabel">This is a label</label>
<input id="i1" type="text" class="inforTextbox" aria-label="Title, not label" />
Run Code Online (Sandbox Code Playgroud)
对我来说,这个标记是在我的自定义工具提示控件之后生成的.我在IE上看到JAWS的问题是它只读取"标题,而不是标签",但是对于其他屏幕阅读器,例如,标签和文本框上的语音都aria-label被读取.我认为它应该同时阅读.
这是一个设置还是一个错误?或者还有别人可以推荐的东西吗?
我正在为盲人和视障人士创建一个阅读服务网站,我正在使用JavaScript(使用jQuery)在页面加载后将一些内容打印到某些页面.
屏幕阅读器是否会在页面加载后读取使用jquery打印到页面的内容?
从这个页面 - "通常,[屏幕阅读器]访问DOM(文档对象模型),他们使用浏览器API(应用程序编程接口)来获取他们需要的信息."
我们知道jQuery是一个DOM操作库.
所以问题变成..屏幕阅读器是否会获取整个DOM的副本,然后解析并阅读它?或者他们是否读取了与jQuery相同的DOM?
这是我使用JavaScript的其中一个页面的示例.它使用一种功能来确定我们在空中播放的节目,然后打印节目的名称和听取它的链接.
<div id="now-playing-div"></div>
<script>
// invoke the audio-reader javascript library
$( document ).ready( function() {
var callback = nowPlaying; // catalog, schedule, podcasts, archive or nowPlaying
var selector = '#now-playing-div';
makeAudioReaderPage(callback, selector);
});
</script>
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,如果屏幕阅读器没有读取javascript/jquery打印到#now-playing-div的内容,那么它将不会读取任何内容.然后,我们开始收到一些混乱的听众的电子邮件,想知道正在播放链接发生了什么.
所以今天早上我添加了这个:
<div id='no-js'>Please enable JavaScript to receive this content.</div>
<script>
$( document ).ready( function() {
$('#no-js').toggle();
});
</script>
Run Code Online (Sandbox Code Playgroud)
但如果问题不在于需要启用JavaScript(最近的一项调查显示 99%的屏幕阅读器用户启用了JavaScript),那么问题就无法解决,甚至更糟,因为现在屏幕阅读器用户会认为JavaScript未启用.
该怎么办??
javascript jquery accessibility screen-readers jaws-screen-reader
我对此进行了很多研究,似乎在SO和所有网络上得到了相互矛盾的答案.我理解,在508条款中,合规性不等于可访问性.
最大的问题是UI/UX设计师被告知下拉菜单NEEDS的键盘快捷键使键盘快捷键符合508标准.我看到Windows Forms应用程序有这个,但对于Web开发,我不认为必须"合规"
我回答的另一个问题是:符合MVC 4站点508
section508 standards-compliance drop-down-menu jaws-screen-reader
我在网页上有以下标记片段:
Time spent: <span id="time_spent">00:02</span>
Run Code Online (Sandbox Code Playgroud)
JAWS将其读作"结果零分钟和两秒钟的时间".我如何向JAWS表明这应该被理解为"零小时两分钟"(或仅仅是"两分钟")?理想情况下,任何解决方案也可以与其他屏幕阅读器一起使用.
我目前正在开展的项目之一是客户对IE7和508合规性的要求.该客户目前使用的是JAWS版本9,并且在没有支持WAI-ARIA的更新版本的JAWS的情况下,我被告知是不可能的.例如:
在我回来告诉他们需要升级到更新版本的JAWS之前(来自Freedom Scientific的网站,从版本10开始支持WAI-ARIA),我希望尽可能多的信息来制作一个令人信服的论点.首先,IE7是否能够将ARIA信息传递给JAWS(我已经看到了从IE8开始支持ARIA的声明,但没有明确说明它不适用于IE7)?如果是这样,是否仅限于某种程度?假设这个问题的答案是肯定的,并且支持程度已经足够,那么我应该知道的JAWS版本10,11和12之间的支持是否存在很大差异?也许这是一个很好的满足要求:鉴于IE7的要求,应用ARIA以解决上述两个问题所需的JAWS的最低版本是多少.
我知道这里有很多问题,但我相信它们只是一个问题:请概述IE7和不同版本的JAWS之间对WAI-ARIA的不同程度的支持; 以及这些解决上述客户请求的程度.
谢谢!即使您无法解决此问题的所有要素,我将非常感谢您可以分享的任何信息.
html internet-explorer accessibility section508 jaws-screen-reader
电话号码通常都是数字,忽略了parens,破折号,加号等,因此电话号码的输入字段通常是数字.
当屏幕阅读器遇到数字输入字段时,它会将值读作整数.例如,如果我有一个美国电话号码的三个输入字段,第一个是区号(3位数),那么交换(3位数),然后是行(4位数),如果字段有123,456 ,7890(分别),我们通常认为这个数字是"一二三","四五六","七,八,九,零"的方式.
但是当屏幕阅读器遇到那些领域时,它会说"一百二十三","四百五十六","七千八百九十".
我认为屏幕阅读器用户习惯于将电话号码视为大数字(至少是我曾经说过的那些人),但这并不意味着我们无法让它变得更好.如果我向其中一个人询问他们的电话号码,他们就不会使用大数字而是使用个别数字.
我尝试了各种<input>类型,并查看了所有角色,状态和属性,但没有看到内置任何可以强制读取数字的内容.
我所能想到的是通过将视觉上隐藏的<span>包含数字作为单独的数字,<span id ='foo'> 1 2 3 </ span>,然后使用<input aria-labelledby =来编码它'富'>.
有没有更好的办法?
accessibility screen-readers voiceover nvda jaws-screen-reader
我正在努力使叠加模式更易于访问。它的工作原理基本上类似于此JSFiddle。当您打开模态时,焦点不会正确地进入模态,并且它将继续聚焦于页面中的其他(隐藏的背景)项目。
你可以在我的jsfiddle演示中看到,我已经使用aria-controls,aria-owns,aria-haspopup甚至aria-flowto。
<button
aria-controls="two"
aria-owns="true"
aria-haspopup="true"
aria-flowto="two"
onclick="toggleTwo();"
>
TOGGLE DIV #2
</button>
Run Code Online (Sandbox Code Playgroud)
但是,在使用MacOS VoiceOver时,这些功能都不符合我的预期(尽管VoiceOver确实尊重aria-hidden我在div上设置的功能two)。
我知道我可以操纵tabindex,但是0以上的值对可访问性不利,因此我唯一的选择是手动找到页面上所有可聚焦的元素并将它们设置为tabindex=-1,这在这个大型,复杂的网站上不可行。
另外,我研究了使用Javascript手动拦截和控制选项卡行为的方法,以便将焦点移到弹出窗口中,并在退出底部时又回到顶部,但是,这也影响了可访问性。
accessibility screen-readers voiceover wai-aria jaws-screen-reader
我有一个WPF应用程序需要支持屏幕阅读器(尤其是JAWS).问题是,当列表视图项已更改(添加,删除)时,JAWS不会发布任何内容.盲人用户完全不知道发生了什么.我有什么方法强制屏幕阅读器宣布一些文本,当尝试从列表视图控件添加/删除项目?我该怎么办?
wai-aria ×3
html ×2
section508 ×2
voiceover ×2
forms ×1
html5 ×1
javascript ×1
jquery ×1
nvda ×1
wpf ×1