-
Notifications
You must be signed in to change notification settings - Fork 8.3k
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
Accessibility: NVDA emits errors in WT1.15 preview #13866
Comments
I've also seen this, but not with This is probably related to broken assumptions when switching to/from the alt buffer. |
This error indeed has nothing to do with the notifications implementation. CC @carlos-zamora just want to make sure that this bug doesn't end up in a release, since that would be annoying for many sr users. |
@LeonarddeR (or @codeofdusk since you're familiar with the space) I think I need a little more context here. It looks like NVDA is calling the UIA API terminal/src/types/UiaTextRangeBase.cpp Lines 954 to 1023 in f2a6918
It looks like we emit an error if...
I assume the main culprit here is number 5, but to be certain, could you provide the following:
|
Yeah, that error code is |
This reverts commit f785168 (PR #13244) The error logged to NVDA was caused by the following line of code in `_getTextValue()`: `THROW_HR_IF(E_FAIL, !bufferSize.IsInBounds(_start) || !bufferSize.IsInBounds(_end));` NVDA would expand a text range to encompass the document in the alt buffer. This means that the "end" would be set to the dangling "endExclusive" point (x = left, y = one past the end of the buffer). This is a valid range! However, upon extracting the text, we would hit the code above. The exclusive end doesn't actually point to anything in the buffer, so we would falsly throw `E_FAIL`. Though this could be fixed by adding a special check for the `endExclusive` in the line above, I suspect there are other places throughout the UIA code that hit this problem too. The safest course of action is to revert this commit entirely since it was a code health commit (it doesn't actually close an issue). Closes #13866
This reverts commit f785168 (PR #13244) The error logged to NVDA was caused by the following line of code in `_getTextValue()`: `THROW_HR_IF(E_FAIL, !bufferSize.IsInBounds(_start) || !bufferSize.IsInBounds(_end));` NVDA would expand a text range to encompass the document in the alt buffer. This means that the "end" would be set to the dangling "endExclusive" point (x = left, y = one past the end of the buffer). This is a valid range! However, upon extracting the text, we would hit the code above. The exclusive end doesn't actually point to anything in the buffer, so we would falsly throw `E_FAIL`. Though this could be fixed by adding a special check for the `endExclusive` in the line above, I suspect there are other places throughout the UIA code that hit this problem too. The safest course of action is to revert this commit entirely since it was a code health commit (it doesn't actually close an issue). Closes #13866 (cherry picked from commit bfd5248) Service-Card-Id: 85405833 Service-Version: 1.15
🎉This issue was addressed in #13907, which has now been successfully released as Handy links: |
🎉This issue was addressed in #13907, which has now been successfully released as Handy links: |
Windows Terminal version
1.15.2283.0
Windows build number
25188.1000
Other Software
NVDA 2022.2.2
Steps to reproduce
Expected Behavior
No error in NVDA
Actual Behavior
NVDA emits the following error:
I wasn't able to reproduce this with WT1.14, so therefore I'm filing this here since there might be a regression in UIA related code. @codeofdusk could you reproduce this?
The text was updated successfully, but these errors were encountered: