Add support for ARIA 1.3 attributes (#34264)
Co-authored-by: Abdulwahab Omira <abdulwahabomira@gmail.com> Co-authored-by: Sebastian Sebbie Silbermann <sebastian.silbermann@vercel.com>
Abdulwahab Omira committed
Aug 22, 2025 at 09:22 UTC
698bb4deb7c77010c040ac49630c26db94e6e28c
2 files changed
+26
packages/react-dom-bindings/src/shared/validAriaProperties.js
+5
@@ -59,6 +59,11 @@ const ariaProperties = {
59
'aria-rowindex': 0,
60
'aria-rowspan': 0,
61
'aria-setsize': 0,
62
+ // ARIA 1.3 Attributes
63
+ 'aria-braillelabel': 0,
64
+ 'aria-brailleroledescription': 0,
65
+ 'aria-colindextext': 0,
66
+ 'aria-rowindextext': 0,
67
};
68
69
export default ariaProperties;
packages/react-dom/src/__tests__/ReactDOMInvalidARIAHook-test.js
+21
@@ -37,6 +37,27 @@ describe('ReactDOMInvalidARIAHook', () => {
37
it('should allow valid aria-* props', async () => {
38
await mountComponent({'aria-label': 'Bumble bees'});
39
});
40
+
41
+ it('should allow new ARIA 1.3 attributes', async () => {
42
+ // Test aria-braillelabel
43
+ await mountComponent({'aria-braillelabel': 'Braille label text'});
44
+
45
+ // Test aria-brailleroledescription
46
+ await mountComponent({'aria-brailleroledescription': 'Navigation menu'});
47
+
48
+ // Test aria-colindextext
49
+ await mountComponent({'aria-colindextext': 'Column A'});
50
+
51
+ // Test aria-rowindextext
52
+ await mountComponent({'aria-rowindextext': 'Row 1'});
53
+
54
+ // Test multiple ARIA 1.3 attributes together
55
+ await mountComponent({
56
+ 'aria-braillelabel': 'Braille text',
57
+ 'aria-colindextext': 'First column',
58
+ 'aria-rowindextext': 'First row',
59
+ });
60
+ });
61
it('should warn for one invalid aria-* prop', async () => {
62
await mountComponent({'aria-badprop': 'maybe'});
63
assertConsoleErrorDev([