From b22e446ce85e8f2c77db669f66dc745cfdb5fb4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E8=B1=AA?= <1844749591@qq.com> Date: Tue, 21 Jan 2025 15:59:25 +0800 Subject: [PATCH 1/4] feat: add role attribute to InternalSegmentedOption for improved accessibility --- src/index.tsx | 1 + tests/__snapshots__/index.test.tsx.snap | 40 +++++++++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/src/index.tsx b/src/index.tsx index 6b09e9f..8931980 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -147,6 +147,7 @@ const InternalSegmentedOption: React.FC<{ segmentedClassNames?.label, )} title={title} + role="option" aria-selected={checked} style={styles?.label} > diff --git a/tests/__snapshots__/index.test.tsx.snap b/tests/__snapshots__/index.test.tsx.snap index cba0121..8c3d99f 100644 --- a/tests/__snapshots__/index.test.tsx.snap +++ b/tests/__snapshots__/index.test.tsx.snap @@ -34,6 +34,7 @@ exports[`rc-segmented render label with ReactNode 1`] = `
iOS @@ -49,6 +50,7 @@ exports[`rc-segmented render label with ReactNode 1`] = `

Web @@ -98,6 +101,7 @@ exports[`rc-segmented render segmented ok 1`] = `
iOS @@ -113,6 +117,7 @@ exports[`rc-segmented render segmented ok 1`] = `
Android @@ -128,6 +133,7 @@ exports[`rc-segmented render segmented ok 1`] = `
Web @@ -158,6 +164,7 @@ exports[`rc-segmented render segmented with CSSMotion basic 1`] = `
iOS @@ -173,6 +180,7 @@ exports[`rc-segmented render segmented with CSSMotion basic 1`] = `
Android @@ -188,6 +196,7 @@ exports[`rc-segmented render segmented with CSSMotion basic 1`] = `
Web3 @@ -218,6 +227,7 @@ exports[`rc-segmented render segmented with options 1`] = `
iOS @@ -233,6 +243,7 @@ exports[`rc-segmented render segmented with options 1`] = `
Android @@ -248,6 +259,7 @@ exports[`rc-segmented render segmented with options 1`] = `
Web @@ -278,6 +290,7 @@ exports[`rc-segmented render segmented with options null/undefined 1`] = `
@@ -332,6 +347,7 @@ exports[`rc-segmented render segmented with options: 1 1`] = `
1 @@ -347,6 +363,7 @@ exports[`rc-segmented render segmented with options: 1 1`] = `
2 @@ -362,6 +379,7 @@ exports[`rc-segmented render segmented with options: 1 1`] = `
3 @@ -377,6 +395,7 @@ exports[`rc-segmented render segmented with options: 1 1`] = `
4 @@ -392,6 +411,7 @@ exports[`rc-segmented render segmented with options: 1 1`] = `
5 @@ -422,6 +442,7 @@ exports[`rc-segmented render segmented with options: 2 1`] = `
iOS @@ -437,6 +458,7 @@ exports[`rc-segmented render segmented with options: 2 1`] = `
Android @@ -452,6 +474,7 @@ exports[`rc-segmented render segmented with options: 2 1`] = `
Web @@ -482,6 +505,7 @@ exports[`rc-segmented render segmented with options: disabled 1`] = `
iOS @@ -498,6 +522,7 @@ exports[`rc-segmented render segmented with options: disabled 1`] = `
Android @@ -513,6 +538,7 @@ exports[`rc-segmented render segmented with options: disabled 1`] = `
Web @@ -543,6 +569,7 @@ exports[`rc-segmented render segmented with title 1`] = `
Web @@ -558,6 +585,7 @@ exports[`rc-segmented render segmented with title 1`] = `
hello1 @@ -573,6 +601,7 @@ exports[`rc-segmented render segmented with title 1`] = `
test1 @@ -589,6 +618,7 @@ exports[`rc-segmented render segmented with title 1`] = `
hello1 @@ -604,6 +634,7 @@ exports[`rc-segmented render segmented with title 1`] = `
foo1 @@ -634,6 +665,7 @@ exports[`rc-segmented render segmented: disabled 1`] = `
iOS @@ -650,6 +682,7 @@ exports[`rc-segmented render segmented: disabled 1`] = `
Android @@ -666,6 +699,7 @@ exports[`rc-segmented render segmented: disabled 1`] = `
Web @@ -696,6 +730,7 @@ exports[`rc-segmented should render vertical segmented 1`] = `
iOS @@ -711,6 +746,7 @@ exports[`rc-segmented should render vertical segmented 1`] = `
Android @@ -726,6 +762,7 @@ exports[`rc-segmented should render vertical segmented 1`] = `
Web @@ -756,6 +793,7 @@ exports[`rc-segmented should render vertical segmented and handle thumb animatio
iOS @@ -771,6 +809,7 @@ exports[`rc-segmented should render vertical segmented and handle thumb animatio
Android @@ -786,6 +825,7 @@ exports[`rc-segmented should render vertical segmented and handle thumb animatio
Web From 00c297cd5fb7ed7aa554ceb8ab356de98d4c61fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E8=B1=AA?= <1844749591@qq.com> Date: Tue, 21 Jan 2025 20:25:31 +0800 Subject: [PATCH 2/4] fix: update role and aria attributes --- src/index.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/index.tsx b/src/index.tsx index 8931980..db48a62 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -147,8 +147,8 @@ const InternalSegmentedOption: React.FC<{ segmentedClassNames?.label, )} title={title} - role="option" - aria-selected={checked} + role="radio" + aria-checked={checked} style={styles?.label} > {label} From 3355ab74dcf5444e4991a8a5b2ff930c8b45e73e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E8=B1=AA?= <1844749591@qq.com> Date: Tue, 21 Jan 2025 20:31:24 +0800 Subject: [PATCH 3/4] test: update snapshot --- tests/__snapshots__/index.test.tsx.snap | 160 ++++++++++++------------ 1 file changed, 80 insertions(+), 80 deletions(-) diff --git a/tests/__snapshots__/index.test.tsx.snap b/tests/__snapshots__/index.test.tsx.snap index 8c3d99f..32bb125 100644 --- a/tests/__snapshots__/index.test.tsx.snap +++ b/tests/__snapshots__/index.test.tsx.snap @@ -32,9 +32,9 @@ exports[`rc-segmented render label with ReactNode 1`] = ` type="radio" />
iOS @@ -48,9 +48,9 @@ exports[`rc-segmented render label with ReactNode 1`] = ` type="radio" />

Web @@ -99,9 +99,9 @@ exports[`rc-segmented render segmented ok 1`] = ` type="radio" />
iOS @@ -115,9 +115,9 @@ exports[`rc-segmented render segmented ok 1`] = ` type="radio" />
Android @@ -131,9 +131,9 @@ exports[`rc-segmented render segmented ok 1`] = ` type="radio" />
Web @@ -162,9 +162,9 @@ exports[`rc-segmented render segmented with CSSMotion basic 1`] = ` type="radio" />
iOS @@ -178,9 +178,9 @@ exports[`rc-segmented render segmented with CSSMotion basic 1`] = ` type="radio" />
Android @@ -194,9 +194,9 @@ exports[`rc-segmented render segmented with CSSMotion basic 1`] = ` type="radio" />
Web3 @@ -225,9 +225,9 @@ exports[`rc-segmented render segmented with options 1`] = ` type="radio" />
iOS @@ -241,9 +241,9 @@ exports[`rc-segmented render segmented with options 1`] = ` type="radio" />
Android @@ -257,9 +257,9 @@ exports[`rc-segmented render segmented with options 1`] = ` type="radio" />
Web @@ -288,9 +288,9 @@ exports[`rc-segmented render segmented with options null/undefined 1`] = ` type="radio" />