No Code Attached Yet
avatar chmst
chmst
29 Jul 2020

Steps to reproduce the issue

Make a fresh Installation and have a look on the table for Language Selection.

Expected result

The Table is accessible

Actual result

There are some issues - Thanks @zwiastunsw

The caption tag contains a table description. The description is not a caption!
Table has 4 columns, first column has no header cell (TH).
This table should be tested by a blind person. Or should

  • Place the description of the table in plain text above the table.
  • Give a short caption in the tag
  • Mark the header column for the first column (Select language.

System information (as much as possible)

Additional comments

avatar chmst chmst - open - 29 Jul 2020
avatar joomla-cms-bot joomla-cms-bot - labeled - 29 Jul 2020
avatar brianteeman
brianteeman - comment - 29 Jul 2020

Sorry @chmst I kbow you are only repeating what @zwiastunsw has told you but its wrong

It absolutely is a caption. It is almost a perfect representation of the example provided by w3c https://www.w3.org/TR/html52/tabular-data.html#the-caption-element

avatar brianteeman
brianteeman - comment - 29 Jul 2020

The first column does not have a th but a td. That is correct for a column of this type.
Therefore it does not need to have any text in that cell
If yu test with a screenreader then the checkbox for each row is correctly announced as being for the language in that row because the language is the th with a scope of the row.

avatar zwiastunsw
zwiastunsw - comment - 30 Jul 2020

Thank you Brian for your opinion. But it's not that what @chmst said is wrong.
First, read it carefully. It's written:
This table should be tested by a blind person. Or should....
You might know that. But I don't know it. I only have one screen reader - NVDA. This one reads all right. But there are other readers besides that - JAWS, VoiceOver. I don't know if they read correctly either. Hence the suggestion that OR test it for a blind person, OR correct the code so that it matches the table model.
Second: Second, you're right. The caption can be long. But what's in the caption is not a caption. See exactly that in the W3C example you cited, the caption has the same function as the withdrawn summary attribute - it describes the structure and organization of data in the table. That's why these instructions need to be moved outside the table, in my opinion, and the actual caption needs to be edited.
Thirdly. Just because the first column does not contain text does not mean that it does not contain content. I don't understand. Why shouldn't there be a header cell in it? Just because the screen reader reads correctly is good. But we should make sure that each screen reader reads correctly, and for that we need the accessible name of that column.
See All non-empty elements in tables larger than 3 by 3 must have an associated table header.


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/30214.
avatar brianteeman
brianteeman - comment - 30 Jul 2020

I guess we will have to agree to disagree then. another great example of why you cant just reply on automated tests

avatar zwiastunsw
zwiastunsw - comment - 30 Jul 2020

Brain, be serious. What makes you think it's the result of some kind of automated testing? Can't you really refrain from making comments that discourage people from doing anything?

avatar brianteeman
brianteeman - comment - 30 Jul 2020

I dont see how you would have come to the conclusion of that ruleset without automated tests. thats what those rules are for.

Just because the first column does not contain text does not mean that it does not contain content. I don't understand. Why shouldn't there be a header cell in it? Just because the screen reader reads correctly is good. But we should make sure that each screen reader reads correctly, and for that we need the accessible name of that column.

Your conclusion is the problem.
For the screen reader to read that correctly it needs to know what it is (a checkbox) and what it is for (selecting a specific language). It gets the second part from the table header.

A table header, despite the name, does not have to go at the top of a column. A table header is any cell that has a <th> and is in the scope.

Check the code you will see as i described in my first reply that there is a table header. Thats why it works correctly in a screenreader.

Asking a blind person to test wont increase the number of screenreaders that are tested. Personally I test with two screenreaders but that doesnt matter. If the code follows POUR then it will be fine. As you know screenreaders are like being back in the ie6 browser days - they all work differently and have their bugs and quirks. The users of those screenreaders are aware of those - we should not change code and break POUR as a result as there is no guarantee the screenreader wont change its own behaviour.

As for the caption not being a caption. If its not then what is it and what are your criteria for insisting its not a caption? I query that this is a lost in translation understanding of the element

Concluding comments from webaim.org

Provide headers for data tables

  • Identify all data table headers using the <th> element.
  • Provide an appropriate scope attribute: <th scope="col"> for column headers or <th scope="row"> for row headers.
  • If appropriate, add a table <caption> for the data table.
avatar zwiastunsw
zwiastunsw - comment - 1 Aug 2020
  1. Okay. The title of the issue is unfortunate. This table is accessible. But you didn't write that the title is bad! You say that the suggestions made are bad, that they are unfounded.
  2. Okay. Testing by a blind person will not increase the number of screen readers tested. But it may confirm the assumption that the table is causing some problems. Or it can confirm that everything is clear and accessible.
  3. This issue contains 3 suggestions for improving the accessibility of this table. Let's consider them one by one.

First suggestion: Mark the first table cell as the header cell (th).
Question: Does the first column contain data?
Answer: Yes. It contains data which languages the user want to install.
Question: Can you call this data? Is it possible to define it?
Answer: Yes. For example, "The language checkbox" or "Language selection"
Question: Does the first cell of this table contain data?
Answer: No.
Question: Is it possible to place data in the first cell in such an organized table? Or is it possible to place a header in this cell?
Answer: No, you can't put the data. But you can put a header.
Question: Are there other types of table cells apart from header and data cells?
Answer: There are only two cell types - th: header cell and td: data cell.
Question: How do you describe data in a table that contains column headers and row headers?
Answer: Using the column header and the row header. Only these two headers describe the data in the cell exactly.

Conclusions: Currently, the first column has no accessible name. This is not negotiable. Can you give it an accessible name. You can. That's not debatable either. Will adding an accessible name improve the accessibility of this table? That can be discussed. But that is not the subject of our dispute!

Second suggestion: Correct the table caption text in the caption tag
Question: What's caption? What is the purpose of a caption tag?
Answer: The caption element represents the title of the table. The title describes concisely and precisely the purpose, subject and content
Question: Does the current caption of this table specify the concise title of the table, specifies what the table contains?
Answer: No. It says that Joomla is supported by many languages and what to do to install the selected languages.
Question: Can the title of the table contain information other than the title?
Answer: Yes. A caption can introduce context for a table, making it significantly easier to understand.
Question: Does the current caption describe the contents of the table? Does it help to understand how the data in the table is organized?
Answer: No. The current caption does not explain the table. This is a language installation manual, not an explanation of the data in the table.

Conclusions: The current content of the caption is neither the title of a table nor a description of the data structure. Therefore this caption should be corrected. It should also be corrected because it promotes the bad design pattern!

Third suggestion: Move the language installation instructions in the caption to the text before the table. I think that after explaining what the table caption is for, this suggestion does not need to be justified.

Is there anything else to explain? Do you really need these explanations?

avatar brianteeman
brianteeman - comment - 1 Aug 2020

I stand by my original comments

avatar hans2103
hans2103 - comment - 2 Aug 2020

I can reproduce the issue that the first column of the table has no name.
Created a PR to solve this part of the issue
#30262

avatar brianteeman
brianteeman - comment - 17 Apr 2022

There really is no point in this useless issue remaining open

avatar chmst chmst - change - 2 Nov 2022
Status New Closed
Closed_Date 0000-00-00 00:00:00 2022-11-02 14:35:40
Closed_By chmst
Labels Added: No Code Attached Yet
Removed: ?
avatar chmst chmst - close - 2 Nov 2022

Add a Comment

Login with GitHub to post a comment