Notes editor: task checkbox ignores pointer in reading mode #1434

Closed
opened 2026-10-08 03:30:46 +00:00 by kayg · 5 comments
Owner

Reproduction

  1. Open a live Markdown Note and wait for the editor to be ready.
  2. In reading mode, click the unchecked Task to finish checkbox once.
  3. Read the checkbox state and the saved Note body.
  4. Focus the same checkbox and press Space.

Expected

Pointer and keyboard activation update the same visible checkbox state. The checkbox also meets the 44 px touch target rule, or it reports that it is unavailable.

Actual

The checkbox has role checkbox, accessible name Task: Task to finish, aria-checked=false, and no disabled state. A pointer click hits the checkbox button but leaves the state false and the Note API body at - [ ] Task to finish. Space changes it to true and saves - [x] Task to finish. After entering text-edit mode, a pointer click also works. The checkbox is only 16 × 16 px on the 390 px viewport.

This is the Markdown task item inside a Note, not the standalone Tasks view from #1229. It uses the shared editor task node. The bash job filed the issue and did not edit the shared editor core.

Evidence

  • artifacts/bash3-notes/task-checkbox-pointer-noop-1440-light.png — 1× production build, Chromium with macOS platform emulation, light theme. The Note API remained unchecked after the pointer click.
  • artifacts/bash3-notes/task-checkbox-pointer-noop-390-light.png — 1× phone viewport; the accessible checkbox measures 16 × 16 px.

Severity: major.

## Reproduction 1. Open a live Markdown Note and wait for the editor to be ready. 2. In reading mode, click the unchecked `Task to finish` checkbox once. 3. Read the checkbox state and the saved Note body. 4. Focus the same checkbox and press Space. ## Expected Pointer and keyboard activation update the same visible checkbox state. The checkbox also meets the 44 px touch target rule, or it reports that it is unavailable. ## Actual The checkbox has role `checkbox`, accessible name `Task: Task to finish`, `aria-checked=false`, and no disabled state. A pointer click hits the checkbox button but leaves the state false and the Note API body at `- [ ] Task to finish`. Space changes it to true and saves `- [x] Task to finish`. After entering text-edit mode, a pointer click also works. The checkbox is only 16 × 16 px on the 390 px viewport. This is the Markdown task item inside a Note, not the standalone Tasks view from #1229. It uses the shared editor task node. The bash job filed the issue and did not edit the shared editor core. ## Evidence - `artifacts/bash3-notes/task-checkbox-pointer-noop-1440-light.png` — 1× production build, Chromium with macOS platform emulation, light theme. The Note API remained unchecked after the pointer click. - `artifacts/bash3-notes/task-checkbox-pointer-noop-390-light.png` — 1× phone viewport; the accessible checkbox measures 16 × 16 px. Severity: major.
Author
Owner

Additional touch evidence from the production build over the HTTPS test front: at 390 px in touch emulation, the reading-mode Note checkbox has a 16×16 px target, is named Task: Task to finish, and is enabled. A real Playwright tap leaves it unchecked; Space toggles it and the Note body saves - [x] Task to finish. Screenshot: artifacts/bash3-notes/task-checkbox-touch-readmode-390-light.png.

Additional touch evidence from the production build over the HTTPS test front: at 390 px in touch emulation, the reading-mode Note checkbox has a 16×16 px target, is named `Task: Task to finish`, and is enabled. A real Playwright tap leaves it unchecked; Space toggles it and the Note body saves `- [x] Task to finish`. Screenshot: `artifacts/bash3-notes/task-checkbox-touch-readmode-390-light.png`.
Author
Owner

Started. Branch job/taskclick-1434, base d395b6e25.

Started. Branch job/taskclick-1434, base d395b6e25.
Author
Owner

Finished #1434. Head b121ad02c on job/taskclick-1434. Fix: shared Checkbox gets a hitSize prop (transparent 44 px square centred on the 16 px mark, layout unchanged); the editor Task node view uses it. Note: the click no-op itself did not reproduce on current dev (reading mode, edit mode, mouse and touch all toggle once and save); the 16 px target was the confirmed defect. New e2e apps/web/e2e/task-checkbox-note-1434.mjs fails before the fix (target) and passes after at 390/820/1440 light/dark. Gates: bun run check 0 errors; apps/web vitest and packages/editor vitest (22 files, 445 tests) pass. Screenshots in artifacts/task-checkbox-1434 (not committed).

Finished #1434. Head b121ad02c on job/taskclick-1434. Fix: shared Checkbox gets a hitSize prop (transparent 44 px square centred on the 16 px mark, layout unchanged); the editor Task node view uses it. Note: the click no-op itself did not reproduce on current dev (reading mode, edit mode, mouse and touch all toggle once and save); the 16 px target was the confirmed defect. New e2e apps/web/e2e/task-checkbox-note-1434.mjs fails before the fix (target) and passes after at 390/820/1440 light/dark. Gates: bun run check 0 errors; apps/web vitest and packages/editor vitest (22 files, 445 tests) pass. Screenshots in artifacts/task-checkbox-1434 (not committed).
Author
Owner

Revision done. Head f73f96a90. Hit area is now 44 px wide, one text line tall, anchored to the positioned Task slot; adjacent Tasks never overlap. e2e at 390/820/1440 light/dark passes (boundary clicks toggle exactly one Task). apps/web: 297 files, 2119 tests pass; packages/editor: 22 files, 445 tests pass; check 0 errors.

Revision done. Head f73f96a90. Hit area is now 44 px wide, one text line tall, anchored to the positioned Task slot; adjacent Tasks never overlap. e2e at 390/820/1440 light/dark passes (boundary clicks toggle exactly one Task). apps/web: 297 files, 2119 tests pass; packages/editor: 22 files, 445 tests pass; check 0 errors.
Author
Owner

Deployed to calternal.cloud in merge round 35a (build cc1af3c12, live 2026-10-09 00:12 IST). Closing.

Deployed to calternal.cloud in merge round 35a (build cc1af3c12, live 2026-10-09 00:12 IST). Closing.
kayg closed this issue 2026-10-08 18:41:36 +00:00
Commenting is not possible because the repository is archived.
No labels
No milestone
No project
No assignees
1 participant
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/calternal-v0#1434
No description provided.