javascript - 三栏布局的屏幕阅读器如何自定义阅读顺序?

标签 javascript css wordpress twitter-bootstrap accessibility

我正在开发一个 WordPress 主题,并且我计划使用 Bootstrap 来开发它。对于这个主题,可以选择具有三列(左侧边栏、内容、右侧边栏)布局(或者甚至只有左侧边栏,然后内容就可以解决这个问题)。

无论如何,我是盲人,所以我敏锐地意识到,当有视力的用户可以通过内容左侧的侧边栏移动大量小部件时,只是为了到达内容本身,这将是多么烦人只是看不起内容。所以我的问题是:如何让屏幕阅读器(也许是 dom?)看到左侧边栏位于内容之后,但仍然使用 Bootstrap 将其直接放在内容的左侧?

我想到了一种可能的方法,即在第 1 列和第 3 列中制作两个空白 div,它们之间有内容,然后转到新行并在第 1 列和第 3 列中制作它们之间的空白 div,但这看起来真的骇人听闻。

有什么想法吗?

最佳答案

ARIA 规范定义了一个 aria-flowto property ;但是,屏幕阅读器对此属性的支持是有限的。有关详细信息,请参阅以下网页:

我刚刚在 Safari 9.0.1/VoiceOver for Mac OS 10.11.1 和 Firefox 41.0.2/Windows Narrator for Windows 10 中检查了“Using aria-flowto to give users a choice of reading order”页面上的示例,发现 aria- flowto 没有效果。在 Microsoft Edge 浏览器/Windows 讲述人中,从“星球日报”导航会跳到选举结果部分,然后跳到体育新闻部分,但不会返回到天气部分。因此,在浏览器和屏幕阅读器的组合中,似乎部分支持 aria-flowto

自定义阅读顺序的典型方法是确保文档中内容的来源顺序与所需的阅读顺序相匹配。使用 Bootstrap,您可以在文档中首先放置主要内容区域,然后是左侧边栏内容,然后是右侧边栏内容。您可以使用 Bootstrap's column ordering用于视觉交换左侧边栏和主要内容区域的 CSS 类。

例如:

<div class="container">
    <div class="row">
        <div id="main-content" class="col-md-6 col-md-push-3">
            Main content.
        </div>
        <div id="left-content" class="col-md-3 col-md-pull-6">
            Left sidebar content.
        </div>
        <div id="right-content" class="col-md-3">
            Right sidebar content.
        </div>
    </div>
</div>

请注意,主要内容标记按源顺序首先出现,并通过 col-md-push-3 被推到 3 列(视觉上)。左侧边栏标记按源顺序显示在下一个,并通过 col-md-pull-6 拉过 6 列(视觉上)。

这是一个实时的 JSFiddle:http://fiddle.jshell.net/pkywjac5/show/

关于javascript - 三栏布局的屏幕阅读器如何自定义阅读顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32041805/

相关文章:

javascript - 使用 passport-saml 注销 Idp session

Javascript 原型(prototype)继承?

php - 需要使用 get_the_tag_list($ID) WordPress 的帮助

php - 如何在 WordPress 中创建自定义 PHP Hello World 页面?

php - Wordpress 和 AJAX - 上传特色图片

javascript - 如何在背景更改时更改文本颜色?

JavaScript Array.map(parseInt) 导致 NaN 错误

html - 如果我将类添加到 span 标签而不是 div 标签,为什么会有所不同?

javascript - 悬停过渡在加载后第一次点击时不起作用,但在此之后有效?

html - 随内容一起扩展页眉和页脚