-
-
Notifications
You must be signed in to change notification settings - Fork 703
Report the presence of multiple annotations #14507
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
Conversation
See test results for failed build of commit 5f8605573e |
const bool isChrome = this->toolkitName.compare(L"Chrome") == 0; | ||
if (isChrome) { | ||
// A bug in Chrome causes a buffer overrun if numRelations is less than the total number of targets the node has. | ||
// TODO: has this been reported? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is it worth testing, confirming and reporting this bug to Chromium? I don't think we have yet.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It was reported to Chromium in https://bugs.chromium.org/p/chromium/issues/detail?id=1399184
However, the bug only states that Chromium ignores numRelations and gives back all available. It does not mention any buffer overrun. If there is in deed an overrun, it would be within Chromium, as chromium is the one that allocates the buffer.
Either way though, the general issue has been reported and Google will no doubt look into it.
Our work around is sufficient here.
This pr looks all good, except for the changes to braille.py. This is very large, and I am struggling to follow what was necessary to change verses a whole bunch of refactoring. Would it be at all possible to drop the refactoring from this pr and only include the ncessary changes to braille.py? If this is not possible and or if there is good reason and @seanbudd knows this history, then I'm put in a bit more effort to try and get through that particular file diff. |
@michaelDCurran I've slightly amended |
Supersedes #14389 and #14426. Fixes #14360 Summary of the issue: Before this PR, NVDA was only aware of the first annotation target. NVDA announces the presence of an annotation target. nvda+d is used to announce the summary of the first annotation target. This PR introduces base code to support multiple annotation targets, and enables cycling though reporting each summary. Similarly, #14507 introduces reporting the presence of multiple annotation targets. Description of user facing changes nvda+d now cycles through reporting each annotation target for an annotated item. For example reading the summary of each child comment. Description of development approach Creates abstractions for the relationships between annotation origins and targets. The global command to report a summary of an annotation target has been updated.
See test results for failed build of commit 9282cdf66c |
…14526) Follow up of #14507, #14480 Summary of the issue: Firefox incorrectly throws an error when browsing annotated content with an unsupported role. Instead an unknown role should be reported: i.e. "has details". The typing for annotation data structures were incorrect. Description of user facing changes When browsing content in Firefox with an annotation with unsupported role, "has details" is reported instead of throwing an error. Description of development approach Update typing to be more accurate for annotation data structures, log and return None in the Firefox case to match Chromium behaviour. Use Tuples rather than generators for annotations.targets and annotations.roles. Drops the superfluous/unused annotations.summaries
Link to issue number:
Stacked against #14480
Supersedes #14426
Summary of the issue:
Currently, NVDA only announces the first annotation target, and only announces the first annotation summary.
#14480 introduces the ability to cycle through multiple annotations targets.
This PR introduces announcing the presence of multiple annotation targets.
When multiple annotation targets are present with different roles, NVDA should announce them.
Example:
Description of user facing changes
When the annotation feature is enabled, NVDA will now report all the unique annotation target roles.
Description of development approach
nvdaObject.hasDetails
,nvdaObject.detailsSummary
,nvdaObject.detailsRole
Testing strategy:
Known issues with pull request:
It appears that an internally documented chrome bug has not been reported to Chromium/Google yet.
Change log entries:
New features
For Developers
Code Review Checklist: