Problem/Motivation

Tabbing through the table header on admin/content (it does not happen on admin/content/media), after passing the Updated column the focus outline disappears for one tab (SC 2.4.7), then the table column headers for title, content type, status and updated are in focus again but underlined not with a focus outline (check table_header_focus_order.mp4) . Claro is missing that additional lap of honor (SC2.4.3).

Discussed and iterated on the issue with @mgifford, @the_g_bomb, @katannshaw, and @drupa11y

Steps to reproduce

  • Tab through the table header on for example admin/content

Proposed resolution

  • Remove the lap of honor and let the user only tab through the table header one time like in Claro
  • Avoid the tab that is missing a focus outline

Remaining tasks

User interface changes

API changes

Data model changes

Issue fork gin-3506338

Command icon Show commands

Start within a Git clone of the project using the version control instructions.

Or, if you do not have SSH keys set up on git.drupalcode.org:

Comments

rkoller created an issue. See original summary.

rkoller’s picture

Title: https://www.drupal.org/project/gin/issues/3506302 » Tabbing order in the table header is off
mgifford’s picture

Issue tags: +keyboard navigation
sandip’s picture

Assigned: Unassigned » sandip

I am looking into it.

sandip’s picture

I've noticed that the extra tab through the table header occurs because two table headers are being rendered—one for the sticky header and another for the regular table header. To resolve this, I am considering keeping the tab focus on the sticky header while removing it from the regular header using the tabindex="-1" property when sticky value is true.

I am currently working on implementing this solution but facing some challenges but will try to quickly come with the MR. If anyone has an alternative approach or suggestions, I would greatly appreciate your input. Thank you!

sandip’s picture

Assigned: sandip » Unassigned
Status: Active » Needs review
StatusFileSize
new91.76 KB

Please review the code changes. I have added a check to see if both the sticky header and normal table header are rendered. If so, I’m setting tabindex="-1" on the normal header elements to avoid duplicate tab stops. Let me know if it looks good or needs changes.

kanchan bhogade’s picture

Status: Needs review » Needs work
StatusFileSize
new301.83 KB
new207.78 KB

Hi
I have tested MR 307 on Drupal 11.x
MR is applied successfully...

Test Result:
Tested tab key navigation for table header (admin/content), the duplicate tab is removed for header;
But When the user navigates from the header to the actual content (e.g., the table under the title section), an extra tab press is required to reach the first row. Initially, pressing the Tab key does not shift focus to the first row as expected. Only after pressing Tab again does the focus move correctly to the first row of the table.

Moving to Needs works

sandip’s picture

Assigned: Unassigned » sandip
mgifford’s picture

Any updates @sandip? It would be good to address the challenges that @kanchan bhogade described.

sandip’s picture

Assigned: sandip » Unassigned

Sorry @mgifford, I totally forget about that issue. I am unassigning myself as i am not able to fix the bug.

mgifford’s picture

StatusFileSize
new86.31 KB

Using accessibility Insights I was able to duplicate and provide a screenshot of this.

I start in the Title field to make it easier.

The first round through the table goes fine, but when you get to Updated, it gets screwed up. You can see in the numbers that it looks like it goes 1, 2, 3, 4, 10, 6, 7 , 8, 9 (although the last numbers are hard to see).

After "Updated" what I see is that it goes to an empty focus item.

Then it jumps back to the beginning of the header menu and continues on. It just does that once, but it is an extra redundant (and buggy) step.

Image of tabbing order

sandip’s picture

StatusFileSize
new299.89 KB

@mgifford, basically two header is rendering in the table header one is the main table header and another one is sticky header. It seems like the tab is moving twice to the header but actually the tabbing is coming for both sticky header and original header. Some how using js i tried to remove tab effect for original header but in the radio button still the tab effect is there.

I am attaching an gif to prove that the double tab wave is occuring for two table header.

gif

mgifford’s picture

@sandip that's interesting with the sticky header, but given that the sticky isn't visible, this is still a bug.

mgifford’s picture

StatusFileSize
new148.93 KB

I could replicate this in the Admin Theme

/admin/content

Accessibility Insights screenshot, tabbing through content page