angular / components

Component infrastructure and Material Design components for Angular
https://material.angular.io
MIT License
24.33k stars 6.73k forks source link

bug(Table): Tab navigation on inputs inside table with sticky columns (focus out of sight) #28004

Open cirdeicostel opened 11 months ago

cirdeicostel commented 11 months ago

Is this a regression?

The previous version in which this bug was not present was

No response

Description

When having multiple inputs on one row, one input per cell, inside a table with one or more sticky columns the TAB key navigation is focusing at some point on an input that is hidden under the sticky columns, making the focus out of sight, but still inside the table.

The current behavior it's not compliant with the latest accessibility guidelines (WCAG) that states that an element that is focused needs to be in sight. (ref link: https://www.w3.org/WAI/WCAG22/Understanding/focus-not-obscured-minimum)

Reproduction

StackBlitz link: https://stackblitz.com/edit/r22tvc?file=src%2Fexample%2Ftable-sticky-complex-flex-example.html

Table state:

Steps to reproduce:

  1. Scroll the table in order to hide some columns under the sticky columns
  2. Focus first inside the first cell of the row with the inputs
  3. Press TAB key in order to navigate through the inputs
  4. The focus at some point is on the input that is hidden under the sticky columns

Expected Behavior

The focused element should be in sight, visible, not hidden under the sticky columns.

Actual Behavior

The focus is hidden under the sticky columns, out of sight.

DEMO: table_TAB_focus

Environment

zarend commented 6 months ago

Hello folks,

Generally, we let the browser handle scrolling focused items into view. It would be interesting to see if we can reproduce this example in vanilla html. That would help determine if this is a problem with Angular components or perhaps a browser issue.

Best Regards,

Zach