fundamental-ngx icon indicating copy to clipboard operation
fundamental-ngx copied to clipboard

[P2][SOURCING] For scrollable tables, when focus is moved to cells out of view port, half of focus is visible.

Open i563785 opened this issue 1 year ago • 6 comments

Is this a bug, enhancement, or feature request?

Bug

Describe your proposal.

For scrollable tables, when focus is moved to cells out of view port, half of focus is visible. As soon as focus goes to cells out of view port, table should scroll enough to completely get the focussed cell in the view port.

Can you handle that on the application side

No

Which versions of Angular and Fundamental Library for Angular are affected? Please, specify the exact version. (If this is a feature request, use current version.)

0.43.27

If this is a bug, please provide steps for reproducing it; the exact components you are using;

Go to virtual scroll example: https://sap.github.io/fundamental-ngx/#/platform/table/scrolling Click on a cell inside the table Turn on JAWS for windows or VoiceOver for mac and try navigating to cells half visible in the view port Focus goes to such cells but only half of focus is visible.

Screenshot 2024-02-22 at 6 32 58 PM

Please provide relevant source code (if applicable).

Please provide stackblitz example(s).

In case this is Accessibility related topic, did you consult with an accessibility expert? If not, please do so and share their recommendations.

Did you check the documentation and the API?

Did you search for similar issues?

Is there anything else we should know?

i563785 avatar Feb 22 '24 14:02 i563785

Hi @mikerodonnell89 could you please bump a version for this fix and provide us for verification? cc: @I543348

i563785 avatar Mar 06 '24 06:03 i563785

Reopening because this isn't quite working correctly when using virtual scroll due to the table moving the focus to a different row when it redraws the table. The fix is working as intended for non-virtual scroll tables. Related to #11491

mikerodonnell89 avatar Mar 12 '24 19:03 mikerodonnell89

@mikerodonnell89 what happened to that issue?

droshev avatar Apr 06 '24 18:04 droshev

Hi @mikerodonnell89 , Can you pls provide ETA for final fix ?

I543348 avatar Apr 16 '24 18:04 I543348

I don't think there is a quick solution for this due to our current implementation of virtual scrolling, which works by loading a number of not-yet-visible rows into the DOM and allowing the user to scroll to them. We needed to do this because our scrolling functionality has always scrolled the table by pixel and not by entire row, like ui5. See this issue.

The virtual scroll raises issues when combined with our focusable grid directive, which has some of its own scrolling logic. So using the keyboard to move focus from row to row, scrolls the container, which triggers a virtual scroll, replacing the contents of the cells in the grid, which moves the focus, causing a scroll, triggering another virtual scroll... there are a number of cases like this which would need to be accounted for. With #11491, we will fix the table row height to be the same for each row in a table, a table will have a fixed height and only display a set number of rows, and one scroll gesture will shift the contents of entire rows rather than pixel by pixel. We'll be ripping out much of the scrolling logic from the focusable grid/list directive, and reworking much of the virtual scrolling logic. So I think it's in everyone's best interest to focus on implementing #11491 rather than scraping together a solution for this ticket, which will only be thrown away when we get to tackling #11491.

mikerodonnell89 avatar Apr 26 '24 21:04 mikerodonnell89

@mikerodonnell89 Once you downport the new virtual scrolling can you validate the scenario here https://github.com/SAP/fundamental-ngx/issues/11915 ? Also validate it against https://github.com/SAP/fundamental-ngx/issues/11899

droshev avatar May 23 '24 18:05 droshev

fixed on the ng15 downport branch with #12049. fix on main to come

mikerodonnell89 avatar Aug 01 '24 18:08 mikerodonnell89