为提升您的使用体验,本站正在维护,部分功能暂时无法使用。如果本站文章无法解决您的问题,您想要向社区提问的话,请到 Twitter 上的 @FirefoxSupport 或 Reddit 上的 /r/firefox 提问,我们的支持社区将会很快回复您的疑问。

搜索 | 用户支持

防范以用户支持为名的诈骗。我们绝对不会要求您拨打电话或发送短信,及提供任何个人信息。请使用“举报滥用”选项报告涉及违规的行为。

详细了解

Is there a bug with firefox when supporting "aria-labelledby" attribute for <span> element?

more options

I use firefox 10.0.3, and using JAWS 13 to read the screen. I set the "aria-labelledby" attribute for the span, and only first element content was read even I set three 'id' for this attribute. This can work well under IE8.

<table role="grid" summary="Details table">
<tr>
	<td type="columnTitle"><span tabIndex="0" role="gridcell">Date</span></td>
	<th id="_NS_hdr1" role="columnheader" type="columnTitle"><span tabIndex="-1" role="columnheader">3/4</span></th>
	<th id="_NS_hdr2" role="columnheader" type="columnTitle"><span tabIndex="-1" role="columnheader">3/11</span></th>
	<th id="_NS_hdr3" role="columnheader" type="columnTitle"><span tabIndex="-1" role="columnheader">3/18</span></th>
	<th id="_NS_hdr4" role="columnheader" type="columnTitle"><span tabIndex="-1" role="columnheader">3/25</span></th>
</tr>
<tr>
	<th id="_NS_hdr5" role="rowheader" type="columnTitle"><span tabIndex="-1" role="rowheader">Count</span></th>
	<td headers="_NS_hdr1 _NS_hdr5" type="datavalue">
	<span tabIndex="-1" id="_NS_N158B5CC0.1614A0C80" role="gridcell" aria-labelledby="_NS_hdr1 _NS_hdr5 _NS_N158B5CC0.1614A0C80">0</span>
	</td>
	<td headers="_NS_hdr2 _NS_hdr5" type="datavalue">
	<span tabIndex="-1" id="_NS_N158B5CC0.1614A1200" role="gridcell" aria-labelledby="_NS_hdr2 _NS_hdr5 _NS_N158B5CC0.1614A1200">75</span></td>
	<td headers="_NS_hdr3 _NS_hdr5" type="datavalue">
	<span tabIndex="-1" id="_NS_N158B5CC0.1614A1780"  role="gridcell" aria-labelledby="_NS_hdr3 _NS_hdr5 _NS_N158B5CC0.1614A1780">231</span>
	</td>
	<td headers="_NS_hdr4 _NS_hdr5" type="datavalue">
	<span tabIndex="-1" id="_NS_N158B5CC0.1614A1D00" role="gridcell" aria-labelledby="_NS_hdr4 _NS_hdr5 _NS_N158B5CC0.1614A1D00">81</span>
	</td>
</tr>
</table>
I use firefox 10.0.3, and using JAWS 13 to read the screen. I set the "aria-labelledby" attribute for the span, and only first element content was read even I set three 'id' for this attribute. This can work well under IE8. <pre>&lt;table role="grid" summary="Details table"&gt; &lt;tr&gt; &lt;td type="columnTitle"&gt;&lt;span tabIndex="0" role="gridcell"&gt;Date&lt;/span&gt;&lt;/td&gt; &lt;th id="_NS_hdr1" role="columnheader" type="columnTitle"&gt;&lt;span tabIndex="-1" role="columnheader"&gt;3/4&lt;/span&gt;&lt;/th&gt; &lt;th id="_NS_hdr2" role="columnheader" type="columnTitle"&gt;&lt;span tabIndex="-1" role="columnheader"&gt;3/11&lt;/span&gt;&lt;/th&gt; &lt;th id="_NS_hdr3" role="columnheader" type="columnTitle"&gt;&lt;span tabIndex="-1" role="columnheader"&gt;3/18&lt;/span&gt;&lt;/th&gt; &lt;th id="_NS_hdr4" role="columnheader" type="columnTitle"&gt;&lt;span tabIndex="-1" role="columnheader"&gt;3/25&lt;/span&gt;&lt;/th&gt; &lt;/tr&gt; &lt;tr&gt; &lt;th id="_NS_hdr5" role="rowheader" type="columnTitle"&gt;&lt;span tabIndex="-1" role="rowheader"&gt;Count&lt;/span&gt;&lt;/th&gt; &lt;td headers="_NS_hdr1 _NS_hdr5" type="datavalue"&gt; &lt;span tabIndex="-1" id="_NS_N158B5CC0.1614A0C80" role="gridcell" aria-labelledby="_NS_hdr1 _NS_hdr5 _NS_N158B5CC0.1614A0C80"&gt;0&lt;/span&gt; &lt;/td&gt; &lt;td headers="_NS_hdr2 _NS_hdr5" type="datavalue"&gt; &lt;span tabIndex="-1" id="_NS_N158B5CC0.1614A1200" role="gridcell" aria-labelledby="_NS_hdr2 _NS_hdr5 _NS_N158B5CC0.1614A1200"&gt;75&lt;/span&gt;&lt;/td&gt; &lt;td headers="_NS_hdr3 _NS_hdr5" type="datavalue"&gt; &lt;span tabIndex="-1" id="_NS_N158B5CC0.1614A1780" role="gridcell" aria-labelledby="_NS_hdr3 _NS_hdr5 _NS_N158B5CC0.1614A1780"&gt;231&lt;/span&gt; &lt;/td&gt; &lt;td headers="_NS_hdr4 _NS_hdr5" type="datavalue"&gt; &lt;span tabIndex="-1" id="_NS_N158B5CC0.1614A1D00" role="gridcell" aria-labelledby="_NS_hdr4 _NS_hdr5 _NS_N158B5CC0.1614A1D00"&gt;81&lt;/span&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;</pre>

由cor-el于修改

被采纳的解决方案

Hi!

I think you do not need the ARIA markup for what you are trying to accomplish. Firefox has very sophisticated algorithms to correctly make data tables accessible. You already use row and column headers inside the table, and you use the headers attribute etc. You do not need the extra role and aria-labelledby markup to make the table work as you want. JAWS 13 also supports this table interface and should just work without all the WAI-ARIA stuff. I even believe because we have this sophisticated table interface, most of the ARIA markup is ignored inside correctly marked-up data tables.

Give it a try without all the ARIA markup and report back if you still have any problems.

Note that Firefox 11 even improves a couple of these things in data tables even further, so you might want to update.

定位到答案原位置 👍 0

所有回复 (3)

more options

Hi!

Hmm, this is a bit tricky, let me try to find the right person to look into this. I can get back to you when we have more info.

Thanks

Madalina

more options

选择的解决方案

Hi!

I think you do not need the ARIA markup for what you are trying to accomplish. Firefox has very sophisticated algorithms to correctly make data tables accessible. You already use row and column headers inside the table, and you use the headers attribute etc. You do not need the extra role and aria-labelledby markup to make the table work as you want. JAWS 13 also supports this table interface and should just work without all the WAI-ARIA stuff. I even believe because we have this sophisticated table interface, most of the ARIA markup is ignored inside correctly marked-up data tables.

Give it a try without all the ARIA markup and report back if you still have any problems.

Note that Firefox 11 even improves a couple of these things in data tables even further, so you might want to update.

more options

Hi MacroZ,

I understand your point. JAWS support different ways to navigate the page, such as use 'tab' key to navigate clickable items, or use 'Ctrl+Alt+arrow keys' to navigate the data table cells.

I removed the 'gridcell' role from data cells and when I use 'Ctrl+Alt+arrow keys', it works well(I move to one cell, and it can read column title, then row title, then cell value). So it's acceptable because at least we have one way to read this data table :)

There is one more thing I want to ask, I have one page that include one iframe, and the page inside the iframe has several hyper links, I start JAWS13, then use 'tab' key to navigate these links inside the iframe page, when I navigate to one link, I press 'enter' key to goto the new page, then I found all links in the new page do not work when I navigate to any of them and press 'enter' key(it can works well when using mouse click). Seems there's no problem under IE8, I'm not sure this issue comes from JAWS or firefox, so hope you can help to confirm on this, many thanks!