feat(aria/spinbutton): Add spinbutton primitive for value selection within discrete ranges
维护者通常 1 天内回复
@ok7sai 已经在做这个了。
开始于 2026年4月1日。
评估
这个 Issue 还没有评估数据。
描述
Feature Description
Angular Aria currently lacks a spinbutton primitive.
The APG Spinbutton Pattern defines it as an input widget that restricts its value to a set or range of discrete values.
Keyboard Interaction (per APG)
| Key | Function |
|---|---|
| Up Arrow | Increases the value |
| Down Arrow | Decreases the value |
| Home | Sets value to minimum (if defined) |
| End | Sets value to maximum (if defined) |
| Page Up | Increases value by larger step (optional) |
| Page Down | Decreases value by larger step (optional) |
Required ARIA Attributes
role="spinbutton"on the focusable elementaria-valuenow- Current valuearia-valuemin/aria-valuemax- Min/max allowed valuesaria-valuetext- User-friendly string (e.g., "Monday" instead of "1")aria-labelledbyoraria-label- Accessible namearia-invalid="true"- When value is outside allowed range
References
APG Specification
- Spinbutton Pattern
- Quantity Spin Button
Example - Toolbar Example (includes font size
spinbutton)
React Aria Prior Art
React Aria uses spinbuttons internally for date/time segment navigation:
Implementation
PR: https://github.com/angular/components/pull/32663
Use Case
- Quantity Selection - Hotel booking, shopping carts, product pages
- Time Input - Time pickers with hours, minutes, seconds segments
- Date Picker Components - Date range selectors using spinbuttons for date segments
- Toolbar Controls - Font size and property controls in text editors
- Numeric Input with Constraints - Any value selection within a min/max range
- 主要语言
- TypeScript
- 星标
- 25k
- 派生
- 6.8k
- 平均合并
- 1 天 5 小时
- 30 天内合并 PR
- 67
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
angular/components 的其他 Issue
-
bug(aria/combobox): keys pressed back to back are lost; only the last one reaches the popup可能已有人在做 关联的 PR 仍在进行中或已合并。 未关闭area: aria/combobox gemini-triaged
难度 2/5 1-3 小时 新手友好度 78/100
angular/components#33973 ·
维护者通常 1 天内回复
-
bug(aria/combobox): ComboboxPopup throws NG0950 when destroyed before its first change detection可能已有人在做 关联的 PR 仍在进行中或已合并。 未关闭area: aria/combobox gemini-triaged
难度 2/5 1-3 小时 新手友好度 78/100
angular/components#33972 ·
维护者通常 1 天内回复
-
bug(material/sort): hover hint arrow on an unsorted header shows the active sort direction, not the resulting direction after click.可能已有人在做 @lekhmanrus 于 12 天前认领。 未关闭area: material/sort P3
难度 2/5 1-3 小时 新手友好度 70/100
angular/components#33933 ·
维护者通常 1 天内回复
-
bug(mat-date-picker): month shown twice in date picker可能已有人在做 @PreethiPantangi 于 29 天前认领。 未关闭area: material/datepicker P4
难度 2/5 1-3 小时 新手友好度 72/100
angular/components#33763 · 2 条评论 · 3 个 reaction ·
维护者通常 1 天内回复
-
Bug in table.scss footer cell height: unset instead of footer row height unset可能已有人在做 @minwookshin 于 16 天前认领。 未关闭area: material/table P4
难度 1/5 1 小时以内 新手友好度 88/100
angular/components#33709 · 1 条评论 ·
维护者通常 1 天内回复
查看 angular/components 的全部 Issue
相似的 Issue
-
area: app type: bug
难度 2/5 1-3 小时 新手友好度 78/100
ExpidetGames/code-reviewer#585 ·
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 83/100
module-federation/core#5205 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 73/100
LanternOps/breeze#9392 · 1 条评论 ·
维护者通常 1 天内回复
-
engine-rs P3 review-deferral wasm
难度 2/5 1-3 小时 新手友好度 77/100
maniator/verticopolis#1154 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复