fix(accessibility): keep read-only link shortcut inert - #152
Conversation
📝 WalkthroughWalkthrough
Changes읽기 전용 링크 단축키
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@coderabbitai review |
✅ Action performedReview finished.
|
There was a problem hiding this comment.
🧹 Nitpick comments (1)
src/components/CwlEditor.accessibility.test.tsx (1)
79-95: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick win
Meta+K경로도 회귀 테스트에 포함하세요.
EditorFrame는event.metaKey || event.ctrlKey를 처리하지만, 현재 테스트는ctrlKey만 설정합니다. macOS에서Meta+K경로만 회귀해도 이 테스트는 통과합니다.metaKey: true도 동일한 검증에 포함하세요.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/components/CwlEditor.accessibility.test.tsx` around lines 79 - 95, Update the read-only shortcut test around CwlEditor to cover the Meta+K path as well as Ctrl+K: trigger the keydown with metaKey enabled and verify window.prompt remains uncalled, while preserving the existing read-only behavior assertion.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@src/components/CwlEditor.accessibility.test.tsx`:
- Around line 79-95: Update the read-only shortcut test around CwlEditor to
cover the Meta+K path as well as Ctrl+K: trigger the keydown with metaKey
enabled and verify window.prompt remains uncalled, while preserving the existing
read-only behavior assertion.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: e5670188-abbe-415a-ab57-4989d784d018
📒 Files selected for processing (2)
src/components/CwlEditor.accessibility.test.tsxsrc/components/EditorFrame.tsx
|
@coderabbitai review |
|
Signed-off-by: Seongho Bae <me@seonghobae.me>
Signed-off-by: Seongho Bae <me@seonghobae.me>
|
Restacked the unchanged read-only Mod+K boundary onto protected |
|
@codex review |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Remove the duplicated Python support contract changes from this accessibility branch. PR #405 remains the single writer while this branch keeps its read-only link shortcut behavior. Signed-off-by: Seongho Bae <seonghobae@users.noreply.github.com> Commit-Message-Assisted-by: Claude (via Claude Code)
Signed-off-by: Seongho Bae <me@seonghobae.me>
Signed-off-by: Seongho Bae <me@seonghobae.me>
Signed-off-by: Seongho Bae <me@seonghobae.me>
Signed-off-by: Seongho Bae <me@seonghobae.me>
Signed-off-by: Seongho Bae <me@seonghobae.me>
Signed-off-by: Seongho Bae <me@seonghobae.me>
Signed-off-by: Seongho Bae <me@seonghobae.me>
Latest integration evidence — 2026-09-06
Current-head local Office verification on Python 3.14.6 also passed all
173 tests in 2.45 seconds; configured 598 statements/244 branches and public
docstrings 100%. This does not establish the hosted supported-version matrix.
Current candidate
a828e0f9d94da958bee39ccccaa2b02137062b1enormally mergesparent #380
6a7121e04652348e6dbc7b58bbad843ef07f6f86. It inherits the sharedexpected-archive evidence guard, preserving the existing read-only shortcut
delta. The shared helper and regression exactly match the parent. Ten focused
tests (including all four accessibility cases) and TypeScript pass. Full
configured coverage also passed 1,025 tests across 176 files in 65.37 seconds,
all configured source coverage 100%. New-head full build, complete package
consumer chain and fresh pack also pass. Archive SHA-256:
46a155d46b45a58b31569c71665e9cc51219283f5b4018b0c06561ceb9d3e87d.Logs and archive:
/private/tmp/inkspan-pr152-current-package.BPMGOv.New-head full packed-browser acceptance passed all 151 tests in 98.095882 seconds,
with zero skipped, unexpected, flaky or global errors. Consensus run
4661110d-fafd-4e42-901a-fd7fbd8b7ba9binds this head and archive; the digestwas independently rechecked unchanged afterward. Nine screenshots were directly
inspected across Chromium, Firefox and WebKit, each editable/readonly/reenabled:
multilingual content remained visible, the toolbar hid in readonly and returned
with the editable focus border. No missing image glyph appeared here. Readonly
key events remain explicitly synthetic; this does not certify physical IME,
WCAG or deployed behavior. Current source-browser and Office acceptance remain
separate. Older passes and observations below are predecessor evidence.
This PR remains Draft.
Scope and ownership
This existing Draft lane owns the shared read-only link-shortcut guard, accessibility transition tests, and a Proposed TRD paragraph. Ctrl+K and Meta+K must not open a link editing prompt while read-only. Editable behavior remains unchanged; presentation does not replace host authorization.
Preserved prerequisite history
Original RED
084d739437d2db4070ee8547b265316dd4c9e420, source repair547ba5e68a55efce7bfd5dded313cd5a7b909fc6, and predecessor17a3b84c39988af5c7b55fd07bf1b7c316102eb7remain in ordinary merge history. The historical Meta+K review finding was incorporated, not treated as approval.This branch now reuses #380 at
7e231329f8efed484e61e0c29e42e18527142d4d, which inherits #201, #176 and #402. The base change is needed to reuse the canonical actual React editor browser harness. There is zero net shared-harness/config delta against #380. Only the shortcut-specific browser spec belongs here; no competing browser infrastructure, dependency or CI writer is introduced.Exact-head evidence and limitations
b101ff260ecc159680821af4d1f8cf26957e82c3: 1,024 tests / 176 files passed, all configured coverage metrics 100%, 321.81 seconds. This does not transfer to the later browser integration.fdfa236f: all six cases failed an invalid test assumption that readonly content can receive focus. Those logs remain retained. No runtime tabindex behavior was added to satisfy the test.8f9ccf46082086eeac09089b3bbb5e8a6b3e1c9f: six focused browser cases passed in 37.1 seconds, Ctrl and Meta across Chromium, Firefox and WebKit. Editable states use native keyboard input; readonly explicitly dispatches a cancelable bubbling event to the actual editor and verifies it neither opens a prompt nor prevents the default. This is not trusted native readonly-input evidence.381d6927-49e4-4ef4-8c51-267a12119645(package digest null). Full coverage passed 1,024 tests in 176 files, with all configured metrics at 100%, 297.24 seconds. Full package verification passed, including isolated ESM/CommonJS/strict TypeScript public consumers.57a8ffbe-60a4-49d5-a87a-e84d6ebec875identifies archive SHA-256c45c0e80d74e8427ccb3a4de0d97da8a163f72e48719fe31ba72cf3725c9f953, independently recomputed before and after the run. The extracted editor JS and stylesheet matched the build bytes before acquisition. Nine packed editable/readonly/reenabled screenshots were inspected directly across all three engines, confirming retained visible text and toolbar transitions. The earlier Firefox missing-glyph observation was not present in this packed screenshot; it remains a recorded font-dependent portability finding being addressed by the existing Toolbar owner fix(reliability): fail closed for stale toolbar image uploads #158, not a universal Firefox failure.Logs and screenshots are retained in
/private/tmp/inkspan-readonly-shortcut-evidence.WKU9W0. This remains Draft/Proposed, not protected or released. Before lifecycle decisions refetch exact head/base, current checks, formal reviews, unresolved threads, security findings and governing rules. No bypass, self-approval, force push or gate weakening.