Skip to content

Commit 2a32c73

Browse files
committed
refactor: color picker
1 parent 15fd93e commit 2a32c73

File tree

4 files changed

+11
-2
lines changed

4 files changed

+11
-2
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
"@zag-js/color-picker": patch
3+
---
4+
5+
- Add `role="dialog"` to color picker content when not inline to ensure proper `aria-controls` detection
6+
- Add `aria-haspopup="dialog"` to color picker trigger when not inline for better accessibility

packages/machines/color-picker/src/color-picker.connect.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,11 +154,12 @@ export function connect<T extends PropTypes>(
154154
"aria-label": `select color. current color is ${valueAsString}`,
155155
"aria-controls": dom.getContentId(scope),
156156
"aria-labelledby": dom.getLabelId(scope),
157+
"aria-haspopup": prop("inline") ? undefined : "dialog",
157158
"data-disabled": dataAttr(disabled),
158159
"data-readonly": dataAttr(readOnly),
159160
"data-invalid": dataAttr(invalid),
160161
"data-placement": currentPlacement,
161-
"aria-expanded": dataAttr(open),
162+
"aria-expanded": open,
162163
"data-state": open ? "open" : "closed",
163164
"data-focus": dataAttr(focused),
164165
type: "button",
@@ -190,6 +191,7 @@ export function connect<T extends PropTypes>(
190191
...parts.content.attrs,
191192
id: dom.getContentId(scope),
192193
dir: prop("dir"),
194+
role: prop("inline") ? undefined : "dialog",
193195
tabIndex: -1,
194196
"data-placement": currentPlacement,
195197
"data-state": open ? "open" : "closed",

shared/src/css/color-picker.css

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
padding: 24px;
1717
border: 1px solid #d5d5d5;
1818
background: white;
19+
z-index: var(--layer-index);
1920
}
2021

2122
[data-scope="color-picker"][data-part="content"] > .content__inner {

0 commit comments

Comments
 (0)