pingdotgg / pingdotgg/t3code

[Bug]: Preview annotation comments do not support RTL text direction

Open Beginner friendly
#4,644 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
23k
Forks
5.9k
Avg merge
11h 14m
Merged PRs (30d)
357

Description

Area

apps/desktop

Summary

Arabic and other RTL comments in the browser annotation editor use the inspected page's text direction instead of the comment's own content. On a normal LTR page, the RTL comment is aligned incorrectly; on an RTL page, the entire annotation toolbar is mirrored.

Steps to reproduce
  1. Open any left-to-right page in the T3 Code desktop browser panel, for example https://example.com.
  2. Click Annotate preview.
  3. Select any element so the annotation comment editor appears.
  4. Type an Arabic comment, for example كبّر هذا العنوان.
Expected behavior

The comment field should infer direction from the entered text. Arabic, Hebrew, Persian, and other RTL comments should start from the right and preserve readable bidirectional ordering.

The annotation toolbar and editor controls should keep their own stable layout regardless of the inspected page's direction.

Actual behavior

The annotation comment field inherits the inspected page's direction:

  • On an LTR page, Arabic annotation text remains in an LTR field and is aligned/ordered incorrectly.
  • On an RTL page, the comment flows RTL, but the annotation chrome is also mirrored, including the tool order and Attach button placement.

This couples the annotation UI to the host document instead of handling the comment direction independently.

Impact

Minor bug or occasional failure. RTL users can enter a comment, but the field is awkward to edit and mixed RTL/LTR content such as URLs, selectors, and code tokens can be displayed in the wrong visual order.

Version or commit

Reproduced on 0.0.29-nightly.20260724.893 (ece05087a70e).

Environment

T3 Code desktop nightly, Linux/X11, Electron.

Screenshots, recordings, or supporting files

Actual behavior on an LTR page: the short Arabic comment is anchored to the left side of the field.

Arabic annotation comment remains LTR on an LTR page

Diagnostic control with the host page set to RTL: the same comment moves to the right, but the toolbar order and Attach button also reverse. This shows that the annotation overlay inherits direction from the inspected page.

Forcing the host page to RTL also mirrors annotation controls

Related but not duplicate: #1771 is a broad proposal for bidi-ready renderer styling and message bodies. This report is narrowly about the desktop preview annotation overlay and its comment textarea.

Technical note

Current main at 5719e8ac4020 creates the annotation <textarea> without a dir attribute. Giving the comment field content-based direction such as dir="auto", while explicitly isolating the annotation chrome from the host document direction, appears to be the smallest relevant scope.

Workaround

No practical per-comment workaround. Temporarily changing the inspected document's root direction to RTL also changes the page and annotation controls.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in apps/desktop/src/preview/PickPreload.ts around lines 414-419, where the annotation textarea is created. Reproduce the issue with an Arabic comment on an LTR page, then inspect how the annotation overlay receives direction from the inspected document. Done means RTL and mixed-direction comment text displays correctly while the toolbar and editor controls retain a stable layout.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
desktop, frontend
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
78/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.