Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

MarkdownEditor toolbar: use Radix Toolbar from radix-ui instead of the hand-rolled roving tabindex

未关闭 适合新手
#169 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
2/5
预计耗时
1-3 小时
新手友好度
82/100
Issue 类型
重构
描述清晰度
描述清楚
活跃度
活跃
技术栈
react, typescript

调研方向

从 MarkdownEditor 的实现开始,将其工具栏标记、activeButton 状态、toolbarRefs 和 keydown 处理程序与 Radix Toolbar API 进行比较。运行 apps/web/tests/MarkdownEditor.test.tsx;当手写的焦点管理被替换,并且现有的单一 Tab 停止点以及 Arrow/Home/End 行为仍然通过测试时,即视为完成。

由索引模型根据 Issue 内容生成。

描述

enhancement

Context

PR #157 gave MarkdownEditor's formatting buttons role="toolbar", real names, and a hand-rolled roving tabindex (activeButton state + a keydown handler for Arrow/Home/End).

Problem

The roving tabindex is ~30 lines of bespoke focus management that duplicates what Radix's Toolbar primitive already does (roving focus, orientation, Home/End, RTL, and correct tabIndex bookkeeping). radix-ui is already a dependency of apps/web (radix-ui@^1.4.3) and exports Toolbar, so no new package is needed.

Proposal

Replace the <div role="toolbar"> + handleToolbarKeyDown + toolbarRefs/activeButton with Toolbar.Root / Toolbar.Button from radix-ui, keeping the aria-label="Formatting" and per-button names. apps/web/tests/MarkdownEditor.test.tsx already covers the single-tab-stop and Arrow/Home/End behaviour and should pass unchanged.

Deferred from plans/a11y-mechanical.md (PR #157).

主要语言
TypeScript
星标
1
派生
1
平均合并
1 天 20 小时
30 天内合并 PR
25

贡献指南

这个仓库没有索引到贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

CodeForPhilly/codeforphilly-ng 的其他 Issue

查看 CodeForPhilly/codeforphilly-ng 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。