Skip to content

Commit e891c0d

Browse files
authored
fix(a11y): a disabled control answers the pointer with not-allowed (#5323)
The cursor is the only affordance a pointer user gets before they commit to a click. A disabled control answering with `pointer` promises a click it will not honour; one answering with `default` says nothing at all. Every `cursor` in core and lab now carries `':is(:disabled,[aria-disabled="true"])': 'not-allowed'`, the reset gives the same cursor to any disabled element that declares none, and a lint rule plus a Chromium sweep keep it that way.
1 parent 83661ae commit e891c0d

89 files changed

Lines changed: 1554 additions & 133 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
'@astryxdesign/core': patch
3+
---
4+
5+
[fix] A disabled control now answers the pointer with `not-allowed` wherever it can be pointed at: every `cursor` in core and lab carries `':is(:disabled,[aria-disabled="true"])': 'not-allowed'`, and the reset gives the same cursor to any disabled element that declares none — `[aria-disabled]` included, where it previously said `default` and only for native `:disabled`. A lint rule and a Chromium sweep over every story keep it that way. Disabled elements sealed behind `pointer-events: none` are unchanged: the pointer never reaches them, so their cursor comes from an ancestor.
6+
7+
@cixzhang

0 commit comments

Comments
 (0)