Skip to content
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

Create right table view #40014

Conversation

JuliaKirschenheuter
Copy link
Contributor

@JuliaKirschenheuter JuliaKirschenheuter commented Aug 23, 2023

Summary

Create right table view for list of the apps

Before After
Screenshot from 2023-08-23 18-14-39 Screenshot from 2023-08-23 18-38-16
Screenshot from 2023-08-23 18-11-30 Screenshot from 2023-08-23 18-37-53

Checklist

apps/settings/src/components/AppList/AppItem.vue Outdated Show resolved Hide resolved
apps/settings/src/components/AppList.vue Outdated Show resolved Hide resolved
apps/settings/src/components/AppList.vue Outdated Show resolved Hide resolved
@JuliaKirschenheuter JuliaKirschenheuter force-pushed the fix/37899-The_apps_table_represents_a_table_element_and_should_be_implemented_as_such._ branch from 2c8bc71 to 69ded80 Compare August 23, 2023 16:18
@JuliaKirschenheuter JuliaKirschenheuter added 3. to review Waiting for reviews and removed 2. developing Work in progress labels Aug 23, 2023
@JuliaKirschenheuter JuliaKirschenheuter marked this pull request as ready for review August 23, 2023 16:40
apps/settings/src/components/AppList.vue Outdated Show resolved Hide resolved
apps/settings/src/components/AppList.vue Outdated Show resolved Hide resolved
apps/settings/src/components/AppList.vue Outdated Show resolved Hide resolved
@JuliaKirschenheuter JuliaKirschenheuter force-pushed the fix/37899-The_apps_table_represents_a_table_element_and_should_be_implemented_as_such._ branch from f44a0a6 to fbc4c88 Compare August 25, 2023 09:36
@JuliaKirschenheuter
Copy link
Contributor Author

Hi @michaelnissenbaum

what would you say is it an acceptable solution in your eyes?

Screenshot from 2023-08-25 14-11-50

@ShGKme
Copy link
Contributor

ShGKme commented Aug 25, 2023

There is a problem with multi-level table in the bundles view.

Sub headers like "Hub bundle" all works as headers via screen readers.

So when a user reads a "Calendar" app cell in "Name" column in "Hub bundle" section it reads:

Name
Enterprise bundleDownload and enable all
Hub bundleDownload and enable all
Groupware bundleDownload and enable all
Social sharing bundleDownload and enable all
Education EditionDownload and enable all  column 2  clickable  Calendar

In theory it must be fixed by headers attribute that allows to set what exactly headers has each cell. Unfortunately it is not supported by most of screen readers as far as I know 😭

It could be a good alternative to separate it to different tables having 1 caption per table. But then they will have independent column widths... 🥲. (We also cannot make columns fixed).

The only option I can see here is to not use <th> for bundle headers. To make it just a table cell

@michaelnissenbaum
Copy link

@JuliaKirschenheuter The code snippet you sent me, from my perspective, is not accessible. If we intend to structure the content as a data table, we need meaningful column headers like "Name," "Version," etc., which we don't have in this case. As for the text "Enterprise bundle," it should be treated as a caption - refer to https://www.w3.org/WAI/tutorials/tables/caption-summary/, or a heading. Additionally, please avoid using regular headings ("h") within column headers ("th").

@ShGKme
Copy link
Contributor

ShGKme commented Aug 29, 2023

Hello @michaelnissenbaum!

The complex part is that "Enterprise bundle" is not the table caption, but sub-header, the header of a part of the table. This is why we cannot use <caption> here.

image

We tried to make a table according to the w3 tutorial: Tables with Multi-Level Headers
/ Example 2: Table with three headers related to each data cell

I tested the table with NVDA screen reader and it works awful even on w3 example. It doesn't support the headers attribute, so it always read all the sub-header for each cell.

For example, a cell with an app "Calendar" in a Name column is read as

Name
Enterprise bundleDownload and enable all
Hub bundleDownload and enable all
Groupware bundleDownload and enable all
Social sharing bundleDownload and enable all
Education EditionDownload and enable all  column 2  clickable  Calendar

I asked one accessibility community and they asked that most of screen readers doesn't support headers attribute and multi-header tables in general.

Could we ask you help here?

What software should we use for testing screen reading? Or is it fine to just follow the standard even if it is not well supported by the screen readers?

Maybe in this specific case, we can make sub-headers in the table not headers but just cells?

@JuliaKirschenheuter
Copy link
Contributor Author

JuliaKirschenheuter commented Aug 31, 2023

Thank you @michaelnissenbaum!

If we intend to structure the content as a data table, we need meaningful column headers like "Name," "Version," etc., which we don't have in this case.

That part was already implemented, it was just hidden as visually-hidden <tr>: apps-header visually-hidden This part is not a big deal.

As for the text "Enterprise bundle," it should be treated as a caption - refer to https://www.w3.org/WAI/tutorials/tables/caption-summary/, or a heading.

Please see Grigorii's answer.

Additionally, please avoid using regular headings ("h") within column headers ("th").

Yes, i will do it (just forgotten because of other difficulties).

@JuliaKirschenheuter
Copy link
Contributor Author

@michaelnissenbaum i'm wondering how it could be possible that examples from https://www.w3.org/WAI/tutorials/tables/multi-level/ are not accessible (massive screen reader problem)

@JuliaKirschenheuter JuliaKirschenheuter added 2. developing Work in progress and removed 3. to review Waiting for reviews labels Aug 31, 2023
@michaelnissenbaum
Copy link

@JuliaKirschenheuter Screen readers are software products and therefore not flawless (bug free). It's also important to use the right combination of screen reader and browser and to test with different browser/screen reader combinations. In my experience, the WAI examples are generally fine and work in most cases.

@michaelnissenbaum
Copy link

@ShGKme I might be misunderstanding, but from my point of view, it could be possible to divide the contents of the page into separate tables with captions or headings like "Enterprise Bundle" and "Hub Bundle." In this case, we no longer have any issues.

@JuliaKirschenheuter
Copy link
Contributor Author

JuliaKirschenheuter commented Aug 31, 2023

Thank you @michaelnissenbaum again!

it could be possible to divide the contents of the page into separate tables with captions or headings like "Enterprise Bundle" and "Hub Bundle."

The issue is:

"It could be a good alternative to separate it to different tables having 1 caption per table. But then they will have independent column widths... 🥲. (We also cannot make columns fixed)."

Could we implement a table like "Table with three headers related to each data cell" from https://www.w3.org/WAI/tutorials/tables/multi-level/?

@michaelnissenbaum
Copy link

@JuliaKirschenheuter You can do that. Just make sure the headings are correctly linked. Refer to the description of the test step here: https://ergebnis.bitvtest.de/pruefschritt/bitv-20-web/bitv-20-web-9-1-3-1f-zuordnung-von-tabellenzellen.

@JuliaKirschenheuter
Copy link
Contributor Author

In example2, "Table with three headers related to each data cell", https://www.w3.org/WAI/tutorials/tables/multi-level/ there is wrong implementation of <th scope="colgroup">

right implementation is under: https://html.spec.whatwg.org/multipage/tables.html#attr-th-scope. should be <th scope=rowgroup>

@JuliaKirschenheuter JuliaKirschenheuter force-pushed the fix/37899-The_apps_table_represents_a_table_element_and_should_be_implemented_as_such._ branch from fbc4c88 to 2fce495 Compare August 31, 2023 15:08
@JuliaKirschenheuter JuliaKirschenheuter added 3. to review Waiting for reviews and removed 2. developing Work in progress labels Aug 31, 2023
@JuliaKirschenheuter JuliaKirschenheuter force-pushed the fix/37899-The_apps_table_represents_a_table_element_and_should_be_implemented_as_such._ branch from c756e3a to 65af3a3 Compare September 1, 2023 15:17
@AndyScherzinger AndyScherzinger added this to the Nextcloud 28 milestone Sep 4, 2023
@AndyScherzinger AndyScherzinger force-pushed the fix/37899-The_apps_table_represents_a_table_element_and_should_be_implemented_as_such._ branch from 65af3a3 to bb218d2 Compare September 4, 2023 14:07
@AndyScherzinger
Copy link
Member

/compile and amend /

@ShGKme ShGKme force-pushed the fix/37899-The_apps_table_represents_a_table_element_and_should_be_implemented_as_such._ branch from bb218d2 to 3f9b709 Compare September 4, 2023 14:56
@ShGKme
Copy link
Contributor

ShGKme commented Sep 4, 2023

Fixed ESLint errors with formatting, no noticeable changes.

@ShGKme ShGKme force-pushed the fix/37899-The_apps_table_represents_a_table_element_and_should_be_implemented_as_such._ branch 4 times, most recently from 8cfc291 to a360c37 Compare September 4, 2023 21:36
@ShGKme
Copy link
Contributor

ShGKme commented Sep 5, 2023

Acceptance tests selectors updated according to layout update

Signed-off-by: julia.kirschenheuter <julia.kirschenheuter@nextcloud.com>
@Pytal Pytal force-pushed the fix/37899-The_apps_table_represents_a_table_element_and_should_be_implemented_as_such._ branch from a360c37 to 8b60295 Compare September 5, 2023 23:47
@Pytal Pytal added 4. to release Ready to be released and/or waiting for tests to finish and removed 3. to review Waiting for reviews labels Sep 5, 2023
@ShGKme ShGKme merged commit 00200a2 into master Sep 6, 2023
38 checks passed
@ShGKme ShGKme deleted the fix/37899-The_apps_table_represents_a_table_element_and_should_be_implemented_as_such._ branch September 6, 2023 00:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
4. to release Ready to be released and/or waiting for tests to finish accessibility
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[BITV] 9.1.3.1e/8.1 - The apps table represents a table element and should be implemented as such.
6 participants