TalkBack屏幕阅读问题

时间:2014-04-02 19:54:49

标签: javascript android html accessibility wai-aria

我试图掌握如何编写屏幕阅读器代码,并且我遇到了很多问题。第一个示例是我尝试显示的单个HTML元素:

<h2><span>This is an element.</span></h2>

Android上的对讲将把它读作&#34;这是一个元素标题2,&#34;但是我想知道如何制作它以便它只是回读为&#34;这是一个元素。&#34;

另一个问题是具有多个嵌套子元素的元素;例如,我测试了这个:

<div aria-live="assertive" aria-atomic="true" tabindex="0">
    <div>
        <div>
            <p>This is text for the div.</p>
        </div>
    </div>
    <div>
        <p> This is additional text. </p>
    </div>
</div>

我希望屏幕阅读器说&#34;这是div的文本。这是附加文本。&#34;,但它只是说&#34;这是div的文本。&#34;我的印象是,咏叹调原子会让它读取所有内容,所以我可能做错了什么?我试着把第二句写成一个标题,但那也没有用(我怎样才能这样做,以便在这样的场景中读取div的内容和title属性?)。 / p>

最后,虽然这个问题仍然存在,但我很奇怪能够同时阅读标题文本和内容文本:

<a title="for the title">this is additional text</a>

...但仅当我单独关注该元素时。如果我尝试用其他文本制作div的孩子,那么la:

<div>This is a title and <a title="for the title">this is additional text</a></div>

它会读掉&#34;这是一个标题,这是附加文字,&#34;当我想要&#34;这是一个标题,这是标题的附加文本。&#34;它基本上会跳过title属性。

这非常令人困惑;我已经阅读了咏叹调属性以及特定屏幕阅读器和对讲特别是如何工作,但我没有运气。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

如果您在标题标签下放置一个跨度,就像您的情况一样,屏幕阅读器将读取标题级别。如果您不希望读取标题,则不要将span放在标题标记内。