Similar to 720370, IAccessibleHyperlink (and by extension IAccessibleHypertext) treat non-BMP characters as two characters for the purposes of calculating and processing hyperlink indices. This means that a hypertext that is non-BMP emoji + hyperlink will have the hyperlink at index 2 instead of index 1. The IAccessible2 documentation refers to "character offsets," which suggests that these offsets should in fact be Unicode aware. Thus this bug has two parts:
1. Confirm that we need the offsets to be Unicode aware.
2. Modify the code to produce Unicode aware offsets.
One thing that is certain is that ATK expects these offsets to be character offsets, so we will need a Unicode aware version of the code regardless.
Similar to issue 720370, IAccessibleHyperlink (and by extension IAccessibleHypertext) treat non-BMP characters as two characters for the purposes of calculating and processing hyperlink indices. This means that a hypertext that is non-BMP emoji + hyperlink will have the hyperlink at index 2 instead of index 1. The IAccessible2 documentation refers to "character offsets," which suggests that these offsets should in fact be Unicode aware. Thus this bug has two parts:
1. Confirm that we need the offsets to be Unicode aware.
2. Modify the code to produce Unicode aware offsets.
One thing that is certain is that ATK expects these offsets to be character offsets, so we will need a Unicode aware version of the code regardless.
Comment 1 by mrobin...@igalia.com
, Sep 12