According to the IA2 Spec, traversing down from the focused object in the accessibility tree, one should be able to use IAccessibleHyperlink to get to the object containing the caret. Currently, this doesn't happen in content editables because we store text both in static_text nodes and the nodes that have the static_text nodes as children, e.g. a paragraph.
IA2_PARAGRAPH IA2_HYPERTEXT='text'
++STATIC_TEXT IA2_HYPERTEXT='text'
The caret is always in a static_text node, but since there is no embedded object character for the static_text node in its parent, e.g. in the paragraph, assistive software cannot use IAccessibleHyperlink to get to the caret from its parent.
We should fix this by removing the actual text from parent nodes and only expose it on static_text nodes. Before doing this, we should test if this will break any existing assistive software.
Comment 1 by chaok@google.com
, Dec 5 2016