-
-
Notifications
You must be signed in to change notification settings - Fork 641
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
Table navigation doesn't respect colspan #7278
Comments
Totally agree that this is the ideal behaviour. The question is how to implement this and how to handle the edge cases. Table navigation uses the cursor position as the point of origin when navigating. This is necessary because otherwise, if you navigated elsewhere in the table (or even to another table) by some other means (e.g. the cursor keys, quick navigation or search), the user expects to navigate from that new position, not the cell at which they last used table navigation. This creates a problem, though, because as far as the cursor is concerned, the position of the spanned cell is exactly the same regardless of how you get there. To fix this, table navigation needs to keep some additional state, but only act on it if the user hasn't moved the cursor to another table/cell by some other means. Here's where the edge cases come in. Should we preserve this state if the user moves the cursor by some other means but still stays within the cell? Or should we only preserve the state if the user is only using table navigation commands? I tend to think the latter is acceptable. Examples:
Handling these cases is going to be hard to implement and probably overkill. I can think of two ways to maintain the state:
|
I agree that your second approach is probably the most cleanest one. I assume you'd cache those things on the tree interceptor? May be we should also take the reporting of things into account here. E.g. If we are at the a2 and b2 cell and coordinates reporting is on, should NVDA report that this cell spans both column 1 and column 2? I think it should whenever possible. I know this is a completely different issue though |
Still reproducible in NVDA 2019.1.1 and different browsers (tested in FF 66.0.3 and Crhome 73). |
Just to indicate that this issue is still reproducible with 2020.3 and that Jaws does not exhibit this issue. |
…lumn/row index (#13345) Follow up on the work done by @mltony in #11923 Fixes #7278, #11919 Summary of the issue: When issuing table navigation commands repeatedly, e.g. pressing Control+Alt+Down several times in a row, the original column index is currently not preserved. Thus, if there happens to be a merged cell on the way, the column index will be reset to the minimal column index of merged cell. Description of how this pull request fixes the issue: This PR caches original column index for vertical table navigation and original row index for horizontal table navigation.
Steps to reproduce:
Expected behavior:
NVDA returns to row 1 column 2. Expectation based on Excel behavior
Actual behavior:
NVDA lands on row 1 column 1, so it doesn't get back to the original position
System configuration:
NVDA version: next-14106,059e7f02
NVDA Installed
Windows version: Windows 10 Version 1703 (OS Build 15063.296)
The text was updated successfully, but these errors were encountered: