2015-06-10 22 views
9

我想让我的HTML页面适合屏幕阅读器。如何为某些HTML页面部分的屏幕阅读器设置优先级?

目前,该页面有3个主要部分:头,侧边栏和内容:

enter image description here

屏幕阅读器阅读起初,然后最后搜索结果

不幸的是,有视力问题的用户等待很长时间,而程序将读取所有侧栏内容(导致侧栏包含多个过滤器)。 如何为搜索结果设置更大的优先级?导致搜索结果应该在侧边栏内容之前阅读。

这将是巨大的,如果有人提供给我约我能做些什么来提高HTML页面的访问级别一个HTML教程:

  • 我怎样才能改变一些div元素通过屏幕阅读器跳过?
  • 如何更改阅读页面内容的顺序?
  • 我该如何使只有可读性的搜索表单和搜索结果(以及一些链接)?
+0

这只是局部的答案,但使用HTML5元素,如页眉,页脚,导航,放在一边,文章,部分将帮助你的事业。另外,请确保在适当的div元素上使用aria标志性角色(role =“search”,role =“navigation”,role =“main”等)。 – cfnerd

+0

请问你为什么试图做这些事情? – unobf

+0

@unobf因为我有搜索过滤器的大名单和用户想听到的第一 – bmalets

回答

3

不要试图隐藏屏幕阅读器用户的内容,他们会想要访问该内容。相反,您可以将地标添加到您的内容区域。然后屏幕阅读器将能够直接跳转到页面的相关部分,包括结果,但仍然能够在需要时进入其他控件。

如果你可以使用HTML5,分别使用<header><aside><nav>然后<main>元素为你的头,过滤器和侧导航和搜索结果。

如果您不能使用HTML5,那么将role =“banner”,role =“complementary”,role =“navigation”和role =“main”添加到这些区域的环绕元素。

正如你还应该添加标题结构文档(屏幕阅读器可以通过这些太导航)最佳实践和跳过链接(近视,只有键盘用户)

0

一个常见的事情是有一个“跳过导航”链接,这是一个锚定参考,直到您的真实内容开始。这使屏幕阅读器可以跳过。

<a href="#main" class="skip-navigation">Skip Navigation</a> 

... 

<h1 id="main">Search Results</h1> 

如果你愿意,你可以使用屏幕阅读器仍然可以选择的风格,但对普通浏览器不可见。

.skip-navigation { 
    position: absolute; 
    left: -5000px; 
    top: 0; 
    width: 1px; 
    height: 1px; 
    overflow: hidden; 
} 
+0

感谢@Brad,但怎么样'div'标签?如果包含'skip-navigation'类,它会作为链接跳过吗? – bmalets

+2

HTML5提供了标签,比如'header','aside'和'article',它为网页增加了语义。随着跳过链接,这些也可以用于更好的可访问页面。 – Pratap

+0

@bmalets这里的'skip-navigation'类仅用于造型。你不需要使用它。整个行动在于你有一个链接到页面参考。 – Brad

0

问题是固定"aria-live"属性格式

屏幕阅读器在每个内容更改后都会读取“aria-live”标签。 因此,如果用户改变搜索形式的文本 - 屏幕阅读器将阅读带有Ajax加载搜索结果的“aria-live”标签的内容。

测试了ChromeVox