Blink has confusing behaviors and bugs with bidirectional text selection and editing. The main cause is bidi adjustment, which maps between logical and visual positions at bidi boundaries. To fix these bugs, bidi affinity is replacing bidi adjustment. Users won't see many differences, but developers will. See the comments box for specifics.



Status in Chromium


No longer pursuing (tracking bug)

Consensus & Standardization

After a feature ships in Chrome, the values listed here are not guaranteed to be up to date.

  • No signal
  • No signal
  • No signals



Selection API has two changes. (1) When caret is at a bidi boundary, it returns different values of anchor/focusNode and ~Offset. (2) When setting caret to a bidi boundary, caret is shown at a different place. There are similar changes in the selection offsets API of <input> and <textarea>. See Demo for examples.

Last updated on 2021-12-05