New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Associating header and data cells in a complex table using headers-id attribute #3244
Comments
Comment 1 by jteh on 2013-05-22 00:23 |
Comment 2 by spanchang02 (in reply to comment description) on 2013-05-26 17:33
|
Comment 3 by jteh (in reply to comment 2) on 2013-05-28 04:02
WCAG technique H43 clearly distinguishes between header and data cells, though it isn't clear about the header cells being th. However, all the examples use th for header cells. HTML 4.01: header information with data cells does likewise.
Actually, it does. WE and JAWS interrogate the DOM directly for Firefox, bypassing accessibility APIs. NVDA uses accessibility APIs only for Firefox. Firefox enforces this for accessibility APIs.
Kindly check your facts before stating that an assertion is incorrect. |
Comment 4 by spanchang02 on 2013-05-29 16:07
Perhaps you interpreted this statement in WCAG2 - H43 technique description as 'lack of clarity': You see it is not always possible / desirable by authors to mark up a cell as TH in a complex table. Take a look at the"Travel Expense Report" table on the same HTML 4.01 specs page under 11.4.2 for an example of TD cells with an id value: So please fix NVDA so it reads all id values within the headers attribute regardless of whether they reference TH or TD. You will do users a great service. Changes: |
Comment 5 by jteh (in reply to comment 4) on 2013-05-29 20:41 Replying to spanchang02:
Why should that affect whether the cell is th, though? There's no reason the cell on the right couldn't be th. On further testing, it looks like Firefox does correctly associate headers pointing to td elements if the td elements have a scope attribute. Arguably, this does conform to the spec:
The controversy is in the definition of "as appropriate". You could argue this means that you don't necessarily need to include the scope attribute if it can be inferred or you could argue that "as appropriate" means that you must choose the correct value of scope for your particular case. This is probably something we need to discuss with Mozilla. As I explained above, for Firefox and any browser other than IE (IE's exposure to accessibility APIs is seriously deficient), we rely on accessibility APIs, so this change needs to be made in the browser. |
Comment 6 by jteh on 2013-05-29 21:02 |
Comment 7 by spanchang02 (in reply to comment 6) on 2013-05-30 18:37 Anyway, cell to the right may be TH or it could be a data cell (TD) that also serves as a header to other cells.Refer to specs: You should use the TD element for such cells together with the id or scope attributes as appropriate. Secondly, It is important to use scope=row for TH cells in column #1 of a table that serves as row headers for most tables. So 'as appropriate' means it is up to the author to use the attribute suitably. The AT has to obey the attribute: announce a cell as header based on scope value regardless of whether header cell is TH or TD.
|
Comment 8 by jteh (in reply to comment 7) on 2013-05-30 23:51
I mean why would you ever want to make it a td instead of a th if it is a header? I haven't seen a single good example of that yet. Even the example you cited could easily use th instead of td as far as I have examined it; e.g. there is no way "Age:" isn't a header. This is a curiosity; as you've demonstrated, the spec does allow for it.
My point is that "as appropriate" is still a bit ambiguous here. On a th, it's okay for scope to be inferred, but on a td (which normally isn't a header), supplying scope might be appropriate. Certainly, it's very difficult to handle this from an implementation point of view if we have no idea that a data cell is a header while we're processing it. Essentially, we have to assume that all data cells with id attributes are potential headers, which is downright ugly. Even if Mozilla can make this work for Firefox, doing it for IE will be fairly difficult and probably won't happen for some time. |
Comment 9 by spanchang02 on 2013-05-31 16:24 The point is TH and "scope" attributes are what I term "general" techniques for marking up header cells in a table. |
Comment 10 by jteh (in reply to comment 9) on 2013-06-02 23:39 Replying to spanchang02:
That's not quite correct. Browsers with decent accessibility provide this information via accessibility APIs, as assistive technology software really shouldn't be walking the DOM; browsers have a far better idea of web standards (and are better suited to making those decisions) than AT does. The only exception is IE.
If you're talking about the priority assigned to this ticket, it's minor in terms of NVDA implementation priority. I haven't seen any tables that this affects in the wild and users aren't reporting this as a common problem. It's quite difficult to fix for IE. For Firefox, the work needs to be done by Mozilla. |
Comment 11 by jteh on 2013-06-03 01:43
See also MozillaBug:704465. |
Comment 12 by spanchang02 (in reply to comment 11) on 2013-06-08 07:47
3.) http://accessibility.oit.ncsu.edu/blog/2013/05/31/screen-readers-at-a-crossroads/ Again Replying to jteh:
|
Comment 13 by jteh on 2013-06-08 08:07 Here is the situation with this issue:
|
Comment 14 by jteh on 2013-06-08 08:12 |
Comment 15 by spanchang02 on 2013-06-23 16:04 |
Comment 16 by jteh (in reply to comment 15) on 2013-06-24 00:03
Yes, i saw this. This has now been fixed in Firefox, which is why I suggested you test with Firefox nightly in comment:14. See comment:13 for information regarding IE. |
Comment 17 by paulbohman on 2015-02-13 20:11 The first column in this table has cells that span multiple rows (grouping results by males and females). When navigating side to side within the table, NVDA usually reads the relevant row headers (such as "females Mary"), but says "column 1" or "column 2" etc instead of saying the actual column header text, which should be "1 mile" or "5 km" or "10 km." Sometimes NVDA reads only the rowgroup header ("Females" or "Males") and not the person's name. I know that the pattern in some screen readers is to read only the new information and not repeat things the user has already heard (for example, it shouldn't say either "Females" or "Mary" if you navigate to the right within the row that belongs to "Females" and "Mary"; it should say only the column header. And it would be ok if NVDA were following this pattern, but that's not what's happening. It seems somewhat random and buggy, though I'm sure there's an underlying pattern to it. When navigating vertically, NVDA sometimes reads the row header in the second column ("Betsy" or "Matt" for example), but it does not read "Females" or "Males" and sometimes it doesn't even read the name of the person. "Mary" and "Matt" don't seem to get read at all when navigating vertically. Both of those headers are in the first row of their respective groups (Females and Males), so I wonder if there is a pattern of only reading the last row header, or of skipping the first row header (it's hard to tell, since there are only two rows in each of the groups). As it is right now, I have to navigate in multiple directions after arriving at a cell to hear all of the headers. Also, if you go to the "Betsy" cell, NVDA reads "Mary" as the header for that cell, even though the "Betsy" cell does not reference any headers at all in the code. NVDA seems to be guessing here that Mary is the proper header, but the guess is wrong, and there is no reason to guess in this table, because all of the associations are laid out clearly in the HTML via the headers and id attributes. |
Comment 18 by paulbohman on 2015-02-13 20:20 |
Comment 19 by paulbohman on 2015-02-13 21:29 NVDA 2014.4 |
Comment 20 by paulbohman on 2015-02-17 04:53 headers + id: https://dequeuniversity.com/testsuite/tables/spanned-headers |
@jcsteh's #3244 (comment) states that the reported issue has been fixed for Firefox 24, and thus the remaining work needs to be done internally in NVDA for Internet Explorer only. Could someone please check if this still occurs in Internet Explorer 11 as well? This is because if not, we may safely close this ticket given that we are no longer addressing issues specific to older versions of IE. |
We did not make any effort to address this in Internet Explorer 11. Again like with other Internet Explorer issues, we'll accept a PR, but we are not placing priority on these. |
@jcsteh is this still an issue in Firefox?@LeonarddeR I guess many organisations still use IE and I am thinking of SAP netviewer where you have very complex tables. Do you think there is any Chance that maybe you at Babbage look into this? |
If this is not an issue in Firefox anymore, I suggest to close it because IE will probably not get and enhancements from NVDA's side sofar. |
Reported by spanchang02 on 2013-05-21 20:52
Implementing support for headers-id method of associating header and data cells for complex tables is necessary to make them accessible with NVDA.
Example file at:
http://mars.dequecloud.com/demo/Census_2013.htm
Note:
The second table on this page is the same as the first marked up differently so that headers-id markup is not needed.
It uses NVDA's feature of reading cells in multiple columns marked up as TH. The h3 markup for group-row-headers also enhances table comprehension and navigation.
Yet, more complex tables rely on headers-id markup only.
Thanks,
Sailesh
The text was updated successfully, but these errors were encountered: