Expose an embedded object character only for nodes visible to platform APIs
We don't need to use an object replacement character in IAccessible2, UI Automation and Linux ATK if the node whose text is replacing is not visible to those APIs, i.e. if the node lies outside the part of the accessibility tree that could be accessed by platform APIs. Object replacement characters are only meaningful when they appear in the accessible text for IAccessible2 and ATK, and only when they are used as a word or character boundary for UI Automation. Therefore, any object replacement character that cannot be accessed either via IAccessibleText, UIATextRangeProvider,, ATKText, etc. is unnecessary. We currently don't expose such characters in IA2 hypertext, for example. It can also make it impossible to compute the equivalent ancestor AXPosition on a text field for a text position that is pointing to an inline text box inside that field. This patch improves and generalizes the fix in https://chromium-review.googlesource.com/c/chromium/src/+/2473065 AX-Relnotes: n/a. R=dmazzoni@chromium.org, kschmidt@microsoft.com, vicfei@microsoft.com Bug: 1141171 Change-Id: Ia6699a841dfca59558ed1188de04a06e5b13e66c Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2504504Reviewed-by:Aaron Leventhal <aleventhal@chromium.org> Reviewed-by:
Victor Fei <vicfei@microsoft.com> Commit-Queue: Nektarios Paisios <nektar@chromium.org> Auto-Submit: Nektarios Paisios <nektar@chromium.org> Cr-Commit-Position: refs/heads/master@{#828959}
Showing
Please register or sign in to comment