-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weโll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Accessibility test/#136 #157
Conversation
โฆaccessibility testing
ํ ์คํธ ์๊ณผ ๋ฐฐ๊ฒฝ์์ ๋๋น๋ฅผ ๊ฐ์กฐํ๊ธฐ ์ํด ์ปฌ๋ฌ ์์
ํ ์คํธ ์๊ณผ ๋ฐฐ๊ฒฝ์์ ์์ ๋๋น์จ์ ๋์ด๊ธฐ ์ํด ์์
button ์คํ์ผ์ ์ฌ์ฌ์ฉํ๊ธฐ ์ํด ์์
๐storybook: https://65ccb85d5afe55a024495bc0-synwrjjdvz.chromatic.com/ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
์๊ณ ๋ง์ผ์ จ์ด์ ๐
@@ -35,10 +35,10 @@ const displaySeveralMajor = (category: ResultCategoryKey) => { | |||
return ( | |||
<> | |||
<Responsive maxWidth={767}> | |||
<Button label={majorType} variant="outlined" size="xs" role="none presentation" className="p-1 text-[10px]" /> | |||
<Button label={majorType} variant="outlined" size="xs" as="div" className="p-1 text-[10px]" /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
as
keyword๋ฅผ ํตํด renderingํ tag๋ฅผ ๋ณ๊ฒฝ์ํฌ ์ ์๊ตฐ์! ์๋กญ๊ฒ ์์์ด์ ๐
size="default" | ||
data-cy={`taken-lecture-delete-model-trigger-${item.id}`} | ||
data-testid="taken-lecture-delete-button" | ||
className="opacity-0 hover:opacity-100" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
className="opacity-0 hover:opacity-100" | |
className="opacity-0 group-hover:opacity-100" |
๋ณ๊ฒฝ ๊ณผ์ ์์ ๋๋ฝ๋ ๊ฒ ์ผ๊น์?!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- ๊ธฐ์กด์๋ button hover ์ div ํ๊ทธ์ ํฌ๋ช ๋๋ฅผ ์กฐ์ ํ๊ธฐ ์ํด group ์ ๋์ฌ๊ฐ ํ์ํ์ผ๋, ์ ๊ทผ์ฑ ๋ฌธ์ ๋ก div๊ฐ ์ ๊ฑฐ๋๋ฉด์ group ์ ๋์ฌ๋ ํจ๊ป ์ ๊ฑฐํ์์ต๋๋ค.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
์๋๋ ๋ถ๋ถ์ด์๊ตฐ์! group ์ ๋์ฌ๊ฐ ์ ๊ฑฐ๋๋ฉด์ ์๋ ๋์์๊ณผ ๊ฐ์ด ์ญ์ ๋ฒํผ์ ๋ ธ์ถ ๋ฐฉ์์ด ๋ณ๊ฒฝ๋์๋๋ฐ, ์ฌ์ฉ์๊ฐ ์์ํ๊ธฐ ์ด๋ ค์ธ ์ ์๋ค๋ ์ฐ๋ ค๊ฐ ๋๋ค์.
2024-11-29.11.31.06.mov
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- ์, ์ ๊ฐ ๋์๋ฐฉ์์ ์คํดํ๋ค์. ์๋ ์ ์์๋๋ก ๋์ํ๋ ์ค ์๊ณ ์์ ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ค์ ์์ ํ์ฌ ๋ฐ์ํ์ต๋๋ค. ๋์น ๋ถ๋ถ์ ์ง์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
@@ -21,6 +21,7 @@ export function ListRoot<T extends ListRow>({ data, render, isScrollList = false | |||
isScrollList && 'h-72 overflow-auto', | |||
hasNotData && 'flex justify-center items-center', | |||
)} | |||
tabIndex={0} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
์ด ๊ฒฝ์ฐ ๊ฐ row๊ฐ ์๋, list์์ฒด์ focus
๊ฐ ์กํ ๊ฒ ๊ฐ์๋ฐ, ์๋ํ์ ๋ถ๋ถ์ธ๊ฐ์?!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- ๋ค, 'Scrollable region must have keyboard access' ๊ท์น์ ์ค์ํ๊ธฐ ์ํด ๋ชฉ๋ก ์์ฒด์ ํฌ์ปค์ค๋ฅผ ์ฃผ๊ณ ์ ํ์ต๋๋ค!
๐storybook: https://65ccb85d5afe55a024495bc0-gdqeglaowd.chromatic.com/ |
๐storybook: https://65ccb85d5afe55a024495bc0-pzrfvcfhrl.chromatic.com/ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
๊ณ ์ํ์ จ์ต๋๋ค~!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- ์ด๊ฑฐ ์ ๊ฐ ์์ ํด์ ์ฌ๋ฆด๊ฒ์!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
์์ ํ์ต๋๋ค!
1b2fbc4
app/ui/view/atom/button/button.tsx
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
๋ฒํผ ์ปดํฌ๋ํธ๋ฅผ as ์์ฑ์ ํตํด ์คํ์ผ์ ์ฌ์ฌ์ฉํ ์ ์๋๊ฒ ์ธ์ ๊น์์ด์! ๋คํ์ฑ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋๋๊ฒ ๊ธฐ๋ฅ ํ์ฅ์ด ๋์์ ๋๋ ์ข์ ๊ฒ ๊ฐ์์ ๋ง์ด ๋ฐฐ์ธ ์ ์์์ต๋๋ค ๐๐ป
๋ค๋ง ์ ๊ฐ ํ์ธํด๋ณด์์ ๋ variant="outlined"
์์ฑ์ ์ฌ์ฉํ๋ ๊ณณ์ด result-card ์ปดํฌ๋ํธ๋ฟ์ด๋๋ผ๊ตฌ์
๊ทธ๋ ๋ค๋ฉด result-card๊ฐ Button ์ปดํฌ๋ํธ๋ฅผ ๊ตณ์ด ์ฌ์ฉํ์ง ์๊ณ outlined ์คํ์ผ์ ๊ฐ์ง ์์๋ฅผ ๋ง๋ค์ด๋ ๋์ง ์์์๊น? Button์ ์คํ์ผ์ ์ฌ์ฌ์ฉํ๋ค๊ณ ๋ณผ ์ ์์๊น? ๋ผ๊ณ ์๊ฐํ์ด์..!
ํน์ ์ด ๋ถ๋ถ์ ๋ํด์๋ ์ด๋ป๊ฒ ์๊ฐํ์๋์?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- ์ฐ์ ์ ๊ทผ์ฑ ๊ฐ์ ์์ ์ ์งํํ๋ฉด์, ์ ๊ฐ ์์ ํ์ง ์์ ๋ถ๋ถ์ด๋ค ๋ณด๋ ๋ฏธ์ฒ ํ์ ํ์ง ๋ชปํ ์๋๊ฐ ์์ ์ ์์ด์, ๊ธฐ์กด ๊ธฐ๋ฅ์ ์ต๋ํ ์ ์งํ๋ฉด์ ์์ ํ๋ ค ํ์ต๋๋ค.
- ์ ๋ ๋์ผํ ๊ณ ๋ฏผ์ ํ๋๋ฐ, ํด๋น ๋์์ธ์ด ์ ํฌ outlined button๊ณผ ์์ ํ ์ผ์นํ๊ณ ์ด๊ฒ ์๋๋ ๊ฑฐ๋ผ๋ฉด ์๋ก์ด ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค๊ธฐ๋ณด๋ค๋ ๊ธฐ์กด button ์ปดํฌ๋ํธ์ ์คํ์ผ์ ์ฌ์ฌ์ฉํ๋ ๊ฒ๋ ํจ์จ์ ์ด๋ผ๊ณ ํ๋จํ์ฌ ์ด๋ ๊ฒ ์์ ํ์ต๋๋ค.
- outline label์ ๋ง๋ค์ด button ์ปดํฌ๋ํธ๋ฅผ ์ด ์ปดํฌ๋ํธ๋ก layerํ๋ ๋ฐฉ์๋ ๊ณ ๋ คํ์ง๋ง, ์ด๋ button ์ปดํฌ๋ํธ์ cva ์คํ์ผ ๊ท์ ๋ฐฉ์๊ณผ ํต์ผ์ฑ์ด ๊นจ์ง ์ ์์ด์ ๊ธฐ์กด button ์ปดํฌ๋ํธ๋ฅผ ํ์ฉํ๋ ๋ฐฉ์์ ์ ํํ์ต๋๋ค.
- ์ด ๋ถ๋ถ ์์ ์ ์งํํ ์ ๊ฒฝ ๋ ์๊ฐ์ด ๊ถ๊ธํ๋ค์!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
๋จผ์ , ํด๋น ๋์์ธ์ ๊ณํํ ๋น์์๋ ๋์์ธ ์์คํ ์ ์ต๋ํ ์ด์ฉํด ํต์ผ๋ ์ด๋ฏธ์ง๋ฅผ ์ ๋ฌํ๊ณ ์ ๋ฒํผ์ outliened์ ์๋์ ์ผ๋ก ๊ฐ์ ธ์์ด์. ๊ฐ๋ฐ ์๋๊ฐ button์ ui๋ฅผ ์ฌ์ฌ์ฉํ๋ ๋ชฉ์ ์ด๋ผ ๋คํ์ฑ ์ปดํฌ๋ํธ๋ก ์ ํํ๋ ๋ฐฉ์์ด ์ข์ ์ ๊ทผ์ด๋ผ๊ณ ๋๊ผ์ต๋๋ค.
outlined ์คํ์ผ์ด ์ ํฌ ๋์์ธ ์์คํ ์ ์์๋๋ผ๋ฉด ํด๋น ์์๋ฅผ ์์ฑํ๋ ๊ฒ๋ ์ข์๋ณด์ด์ง๋ง, ๋์์ธ ์์คํ ์ ๋ฒํผ์ ์ข ๋ฅ๋ก์ ์กด์ฌํ๊ธฐ๋๋ฌธ์ button์ ์คํ์ผ์ ์ฌ์ฌ์ฉํ๋ค๊ณ ๋ณผ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค !
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
์ํ ๊ฐ๋ฐ ์๋๊ฐ button ui ์ฌ์ฌ์ฉ์ด์๋ค๋ฉด ๋คํ์ฑ ์ปดํฌ๋ํธ๊ฐ ๋ ์ ํฉํ ๊ฒ ๊ฐ๋ค์~! ํ์ธํ์ต๋๋ค:)
๐storybook: https://65ccb85d5afe55a024495bc0-thdtosahrv.chromatic.com/ |
๐storybook: https://65ccb85d5afe55a024495bc0-jafliuinnf.chromatic.com/ |
๐ ์์ ๋ด์ฉ
์ปดํฌ๋ํธ ์ ๊ทผ์ฑ ๊ฐ์ - ์ ๊ทผ์ฑ ํ ์คํธ ๊ฒฐ๊ณผ 47๊ฐ ์คํจ์์ ์ ์ฒด ํต๊ณผ๋ก ๊ฐ์
๊ฐ์ ์ :
๊ฐ์ ํ:
์คํ ๋ฆฌ๋ถ์ ์ ๊ทผ์ฑ(a11y) ์ ๋์จ ์ค์
WCAG ํ์ค AA ๊ธฐ์ค์ ๋ฐ๋ฅธ ์์ ๋ช ์๋น ๊ฐ์
๋ฒํผ ์ปดํฌ๋ํธ๋ฅผ ๋คํ์ฑ(Polymorphic) ์ปดํฌ๋ํธ๋ก ๋ณ๊ฒฝํ์ฌ ์คํ์ผ์ ์ฌ์ฌ์ฉ
์คํฌ๋กค ๊ฐ๋ฅํ ์ปดํฌ๋ํธ์ ํค๋ณด๋ ์ ๊ทผ์ฑ ์ถ๊ฐ
ARIA hidden ์์์ ์์ ์์๊ฐ ํฌ์ปค์ค๋์ง ์๋๋ก ์์
๐ค ๊ณ ๋ฏผ ํ๋ ๋ถ๋ถ
๐ ๋์์ด ํ์ํ ๋ถ๋ถ