Drupal ์ปค๋ฎค๋ํฐ์์ ์ ๊ทผ์ฑ ๋ฐ ์ ํ์ ๋ํ ์ด ํ ๋ก ์ผ๋ก ๋ค์ ์ฐ๊ฒฐ๋ฉ๋๋ค.
http://drupal.org/node/1271622#comment -4962028
Chosen์ ์ ์ฉํ ์ฌ์ฉ์ฑ ๊ฐ์ ์ฌํญ์ด ๋ง์ด ์์ต๋๋ค.
ํด๋น ํ ๋ก ์ ๊ด๋ จ ๋ถ๋ถ:
์์ ์ด ๋๋ฌด ๋ง์ด ํ์ํฉ๋๋ค. ์ ๊ทผ์ฑ์ด ๊ณ ๋ ค๋์ง ์์ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค.
์ด ์์ ฏ์ ๋ชจ๋ ํฌํจ๋์ด ์์ผ๋ฏ๋ก ๋ง์ WAI-ARIA ๋ฐ JS ์์ ์ด ํ์ํฉ๋๋ค. *
WCAG 2.0์ ์ค์ํ๋๋ก *๋ฅผ ์๋ํ์ญ์์ค.FF6 / JAWS12๋ฅผ ์ฌ์ฉํ 30์ด ๋ฆฌ๋ทฐ์์ ๊ฐ์ฅ ํฐ ๋ฌธ์ ๋
๊ตฌ์ฑ ์์๋ ์์๊ฐ ์ง์ ๋์ง ์์ ๋ชฉ๋ก์ด ๋ค์ ์ค๋ ์ ๋ ฅ ์ ํ=ํ ์คํธ๋ก ํ์๋ฉ๋๋ค.
์ฌ์ฉ์๊ฐ ํ์ํด์ผ ํ๋ ๋ชจ๋ ์ต์ (๊ตญ๊ฐ์ ๊ฒฝ์ฐ 243๊ฐ) ์ค
ํ๋๋ฅผ ๋ฌด์ํด๋ ๋ฉ๋๋ค.
์ฒ์์๋ ๊ฒ์ ํ ์คํธ ํ๋์ ๋ ์ด๋ธ์ ์ฌ์ฉํ ์ ์์ง๋ง ์ฝ๊ฒ ์์ ํ ์ ์์ต๋๋ค.
๋ ํฐ ๋ฌธ์ ๋ ์์ฑ๋ ๋ชฉ๋ก ํญ๋ชฉ์ ์ต์ปค๊ฐ ์๋ค๋ ๊ฒ์ ๋๋ค... ๋ชฉ๋ก ํญ๋ชฉ์ ์ฉ๋๋ฅผ ์๊ณ ์๋ ๊ฒฝ์ฐ ์คํฌ๋ฆฐ ๋ฆฌ๋ ์ฌ์ฉ์๊ฐ ์กฐ์น๋ฅผ ์ทจํ ์ ์์ต๋๊น?
์ด๊ฒ์ ์์ฃผ ์ข์ ํ๋ฌ๊ทธ์ธ์
๋๋ค! ๊ธฐ๋ฅ์ด ์ ๋ง ๋ง์์ ๋ญ๋๋ค.
๋ ๋์ ์ ๊ทผ์ฑ์ ์ํ ํฅํ ๊ฐ๋ฐ์ด ์์ต๋๊น? WAI-ARIA๋ฅผ ์ถ๊ฐํ์ฌ WCAG 2.0์ ์ค์ํ๋๋ก ํ์๊ฒ ์ต๋๊น?
๋๋ filamentgroups์ ์น์ฌ์ดํธ์์ ์ด ๊ธฐ์ฌ๋ฅผ ์ฝ์์ต๋๋ค. ARIA ์ญํ ์ ์ ํ๋ ์ฌ๋์๊ฒ ์ ํฉํ ์ ์์ต๋๋ค.
http://filamentgroup.com/lab/jquery_ipod_style_and_flyout_menus/
์๋ฅผ ๋ค์ด, ์ ํ๋ ๊ฒฐ๊ณผ UL์๋ role="menu" aria-activedescendant="active-menuitem"์ด ์ ์ฉ๋๊ณ <li>
๊ฒฐ๊ณผ์๋ role="menuitem"์ด ์์ต๋๋ค.
์ ํ๋จ ๋๋กญ๋ค์ด์ ๊ฒ์ ์์์๋ ์ผ์ข
์ ARIA ์ญํ ์ด ํ์ํ ๊ฒ์
๋๋ค.
@dotdreaming ์ ์ฌ๋ฐ๋ฅธ ๋ฌธ์๋ฅผ ๊ฐ๋ฆฌํค๊ณ ์์ง๋ง ์ธ๊ธํ ์ญํ ์ ์ ํํ์ง ์์ต๋๋ค.
๋ค์ ์ญํ ์ ์ฌ์ฉํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋๊ตฐ๊ฐ WAI-ARIA ๋ฌธ์๋ฅผ ์์ธํ ์ดํด๋ณด๊ณ ์ ํ ํญ๋ชฉ์ ์ ์ฉํ๋ฉด ์ ๋ง ๋ฉ์ง ๊ฒ ๊ฐ์์.
์๊ฐ์ ์ฐพ์ ์ ์๋ค๋ฉด ์ง์ ํ ์ ์์ต๋๋ค. ํ๊ธฐ๊ฐ ๊ทธ๋ฆฌ ์ด๋ ต์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค.
์ด ํ๋ก์ ํธ์ ARIA๋ฅผ ์ฐธ์ฌ์ํค๋ ์์ง์์ด ์์ต๋๊น?
๋ณด์กฐ ๊ธฐ์ ๊ณผ ํจ๊ป ์๋ํ๋๋ผ๋ ํค๋ณด๋ ์ ์ฉ ์ฌ์ฉ์์๊ฒ๋ ์๋ํ๋์ง ํ ์คํธํด์ผ ํฉ๋๋ค.
Btw, ์ด๊ฒ์ ์ ๊ทผ์ฑ ๊ฐ์ ์ ์ํด ๋ฎ์ ๋งค๋ฌ๋ฆฐ ๊ณผ์ผ์ ํ์ธํ๋ ๋ฐฉ๋ฒ์ผ ๋ฟ์ด์ง๋ง WAVE๋ ์ ๋ฆฌํด์ผ ํ ๋ช ๊ฐ์ง ๊ฝค ๊ธฐ๋ณธ์ ์ธ ์ฌํญ์ ์๋ณํ์ต๋๋ค -> http://wave.webaim.org/report?url=http%3A% 2F%2Fharvesthq.github.com%2Fchosen%2F&js=2
์ด๋ฌํ ์ ๊ทผ์ฑ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๊น? ๋๋ ์ฐ๋ฆฌ์ ์ฃผ์ ๋ํ ์ฌ์ดํธ์์ ์ด๊ฒ์ ์ฌ์ฉํ๊ณ ์ถ์ง๋ง ์ด๋ฌํ ์ ๊ทผ์ฑ ๋ฌธ์ ๊ฐ ๋๋ฅผ ๋ฏธ๋ฃจ๊ณ ์์ต๋๋ค.
+1 - ์ ํ ๋๋กญ๋ค์ด ๋ชฉ๋ก์ ์ฌ์ฉํ๊ธฐ ์ด๋ ต๊ณ ์ต์ ์ ์ ํํ๋ ๋ฐ ์ด๋ ค์์ด ์๋ค๋ ์๊ฐ ์ฅ์ ์ธ ์ฌ์ฉ์๋ก๋ถํฐ ํผ๋๋ฐฑ์ ๋ฐ์์ต๋๋ค. ๊ทธ๋ค์ JAWS 14๋ฅผ ์คํฌ๋ฆฐ ๋ฆฌ๋๋ก ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
ํ์์ฉ์ผ๋ก๋ง ํค๋ณด๋๋ฅผ ์ฌ์ฉํ์ฌ ์๋ํ์ต๋๋ค. ํญ๋ชฉ ์ ํ์ ๋งค์ฐ ํ๋ฅญํ๊ณ ์ง๊ด์ ์ผ๋ก ์๋ํฉ๋๋ค(์๋๋ก ์ ํญ๋ชฉ ๋ชฉ๋ก์ ์ด๋ ค๋ฉด ์/์๋๋ก, ๋ชฉ๋ก์ ํ์ํ๋ ค๋ฉด ์/์๋๋ก, ๋ชฉ๋ก์ ๋ซ์ผ๋ ค๋ฉด esc, ์ ํํ๋ ค๋ฉด Enter). ๋ค์ค ์ ํ์์ ํญ๋ชฉ์ ์ ๊ฑฐํ๋ ๊ฒ์ ๊ฐ๋จํ์ง๋ง(๋ฐฑ์คํ์ด์ค) ๋จ์ผ ์ ํ ๋๋กญ๋ค์ด์ ์ง์ฐ๋ ๊ฒ์ ๋ ๋ง์ ๋ฌธ์ ๋ฅผ ์ผ๊ธฐํ์ต๋๋ค. ํญ๋ชฉ์ ์ ํํ ํ ์๋๋ก ๋๋ฌ ๋ชฉ๋ก์ ๋ค์ ์ฐ ๋ค์ ์๋ฌด ์ต์ ๋ ์ ํํ์ง ์์ ๋๊น์ง ์๋ก ์ด๋ํ ์ ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง(์์ ์ ๊ฐ์ด ์ฒซ ๋ฒ์งธ ํญ๋ชฉ์ด ๋น์ด ์๋ ๊ฒฝ์ฐ ์ผ๋ฐ ๋๋กญ๋ค์ด์ด ์๋ํจ) Enter ํค๋ฅผ ๋๋ฌ null ์ต์ ์ ์ ํํ ์ ์์ต๋๋ค. ์ต์ ์ ์์ ํ ์ ํ ์ทจ์ํ๋ ๋ฐฉ๋ฒ(๋๋ ์ต์ํ ๋น์ด ์๋ ๊ธฐ๋ณธ ์ต์ )์ ๋งค์ฐ ์ ์ฉํฉ๋๋ค.
๋ํ ์ด๊ฒ์ด ๊ฐ์น๊ฐ ์๋์ง ํ์คํ์ง ์์ง๋ง ๋ฐ์ดํฐ๊ฐ ์ฌ์ ํ ์จ๊ฒจ์ง ์ ํ ์ปจํธ๋กค์ ์ ์ฅ๋์ด ์์์ ์์์ต๋๋ค(์ด๊ฒ์ด ์์์ผ๋ก ์ ๋ฌ๋๋ ๋ฐฉ์์ด๋ผ๊ณ ๊ฐ์ ํฉ๋๋ค). ์ ํ ํญ๋ชฉ๋ ๋ณ๊ฒฝ๋ ๋ ์ ํ ํญ๋ชฉ ๋๋กญ๋ค์ด์ ์ ๋ฐ์ดํธํ๋ ๊ฒ์ด ์ข์ต๋๋ค. UA๊ฐ ์ ํ ์ ์ด์ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ์ํธ ์์ฉํ ์ ์๊ณ ์ ํ ํญ๋ชฉ์ ํ์ฌ๋๋ก ์ทจ๊ธํ ์ ์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ด WCAG์ ๊ธฐ์ค 4.1.2๋ฅผ ์ถฉ์กฑํ๋์ง ๋ ผ์ํ์ต๋๋ค. ์ ๊ทผ์ฑ์ ์ํด ๋งจ ์์ ์์ต๋๋ค.
๋ ๋ฒ์งธ ๋ถ๋ถ์์๋ ์ ํํ ์
๋ฐ์ดํธ๋ฅผ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝํ๋ ๊ฒฝ์ฐ์๋ listz:updated
๋ฅผ ํธ๋ฆฌ๊ฑฐํด์ผ ํฉ๋๋ค.
์ด๊ฒ์ Chosen์๊ฒ ๊ฐ์ด ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝ๋ ๋ ๋ธ๋ผ์ฐ์ ๊ฐ ์ด๋ฒคํธ๋ฅผ ํธ๋ฆฌ๊ฑฐํ์ง ์๊ธฐ ๋๋ฌธ์ ํ์ํฉ๋๋ค.
์ค๋์ ์ ๊ทผ์ฑ์ ์ถ๊ฐํด ๋ณด๋ ค๊ณ ํฉ๋๋ค. @marklagendijk ATM์ ๊ฐ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ๋ง์ํ์ ๊ฒ ๊ฐ์์. ๋ด ๋ฐ๊ฒฌ์ ๋ํ ๋์ ์ ๋ฐ์ดํธ.
์ด๊ฒ์ ๋์์ด ๋ ์๋ ์๊ณ ๊ทธ๋ ์ง ์์ ์๋ ์์ง๋ง ์ฐ๋ฆฌ๋ ๋ฐ๋ผ์ผ ํ ์๊ฒฉํ ์ ๊ทผ์ฑ ์ง์นจ์ด ์์ผ๋ฉฐ ๋ฒ์ 1.0.0์์๋ ํด๋ผ์ด์ธํธ์ ์ ๊ทผ์ฑ ํ ์คํฐ๊ฐ ๋ค์ ์๊ฒฌ๊ณผ ํจ๊ป ๋์์์ต๋๋ค.
2. ๊ฐ์ง ๋๋กญ๋ค์ด์ ๋์ ๋๋ ์ด์ ์ด ์์ต๋๋ค.
Drupal Chosen ๋ชจ๋๊ณผ ํจ๊ป ์ด๊ฒ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๋ํ ๋ธ๋ผ์ธ๋ ํ ์คํฐ๋ ์ ๋ ฅ์ ๋๋ฌํ๋ฉด ์ ๋ ฅํ ์ ์๋ค๋ ์ฌ์ค์ ์์ง ๋ชปํ์ผ๋ฉฐ "๊ฒฐ๊ณผ๋ฅผ ์ฐพ์ ์ ์์"์ ํฌํจํ์ฌ ๊ฒฐ๊ณผ๊ฐ ๋ฐํ๋์ง ์์๋ค๋ ์ ์ ์ฃผ๋ชฉํ์ต๋๋ค.
@marklagendijk
์ด ๋ฌธ์ ์ ๋ํ ๋ชจ๋ ์งํ ์ํฉ. Drupal ์ฝ์ด์ Chosen์ ์ถ๊ฐํ๋ ๋ฌธ์ ๋ฅผ ๋ค์ ์๊ฐํ๋ ค๊ณ ํ๋ฉฐ ์ด๊ฒ์ด ์ฃผ์ ์ฐจ๋จ์
๋๋ค.
์ฌ๊ธฐ์์ ์ด๊ฒ์ด ์ด๋ป๊ฒ ์ํ๋๋์ง์ ๋ํ ์ ๋ง ์ข์ ์๋ฅผ ์ฐพ์์ต๋๋ค.
http://cookiecrook.com/test/aria/multiselect/listbox.html
์๋ฐ ์คํฌ๋ฆฝํธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. http://cookiecrook.com/test/aria/multiselect/js/aria.js
๋๋ ์ด๊ฒ์ด ๊ธฐ๋ณธ์ ์ผ๋ก ์ ํ๋ ๊ธฐ๋ฅ์ ๊ฑฐ์ ์ ํํ๊ฒ ๋งคํ๋๋ค๊ณ ๋ฏฟ์ต๋๋ค. ๋ชฉ๋ก ์์์ ๋ค์ค ์ ํ ๊ฐ๋ฅํ aria ์์ฑ์ ์ฌ์ฉํ์ฌ ๊ตฌํํ๋ ๊ฒ์ ๋งค์ฐ ๊ฐ๋จํด ๋ณด์
๋๋ค.
http://www.w3.org/TR/wai-aria/roles#listbox
http://www.w3.org/TR/wai-aria/states_and_properties#aria - ๋ค์ค ์ ํ ๊ฐ๋ฅ
๋ด๊ฐ ์ง์ ํจ์น๋ฅผ ๋ง๋ค๊ฒ ์ง๋ง js์์๋ ๊ทธ๋ ๊ฒ ์ธ๊ธฐ๊ฐ ์์ต๋๋ค.
์์ ๋งํฌ๋ ๋ด PR์ ํ์ฌ ์ ํ๋ ์ฝ๋๋ฒ ์ด์ค์์ ์์ ํ ์ก์ธ์ค ๊ฐ๋ฅํ ์์ ฏ์ ๋ง๋๋ ๋ฐ "๊น์ด ๋ค์ด๋น"ํ๋ ๋์ ์ ์ง์ ํฅ์ ์์น์ ์ค์ฌ์ผ๋ก ํ๋ ํจ์ฌ ๊ฐ๋จํ ์ ๊ทผ ๋ฐฉ์์ ํตํด ์๋ฃจ์ ์ ์ ๊ณตํฉ๋๋ค. ๋ชจ๋ ํผ๋๋ฐฑ์ ํ์ํฉ๋๋ค.
์ฌ์ ํ IE8์์ ์ ๋๋ก ์ง์๋์ง ์๋ ARIA์ ์ง์คํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ๋ถํํ๋ ์ด 5๋ ๋ ๋ธ๋ผ์ฐ์ ๋ ์ฌ์ ํ ์ผ๋ฐ ๋ธ๋ผ์ฐ์ ๋ชฉ๋ก์ ์์ต๋๋ค. ์ฆ, ์ ๊ทผ์ฑ ๊ฒ์ฌ๋ฅผ ๋ฐ๋ ๋์ ARIA์ ์์กดํ๋ ๊ตฌํ์ด ์คํจํฉ๋๋ค.
๋จ์ํ ์ ํ๋ ๊ฒ์ ๋ชจ๋ ๋นํ์ฑํํ๊ณ ์ฌ์ฉ์์๊ฒ ์๋ ์ ํ์ ์ ๊ณตํ๋ ๋์ฒด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ์ด๊ฒ์ ์ ํ๋ ๊ฒ์ ๋นํ์ฑํํ๋ ์์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋ ์กฐ๊ฐ์ ์ฌ์ฉํ๋ (์จ๊ฒจ์ง) ๋งํฌ๋ฅผ ์ถ๊ฐํ์ฌ ๋ฌ์ฑํ ์ ์์ต๋๋ค.
IE8 ARIA ์ง์ ๊ด๋ จ ๋ฆฌ์์ค : http://www.w3.org/TR/WCAG20-TECHS/wai-aria_notes.html
๋ธ๋ผ์ฐ์ /๊ธฐ๋ฅ ๊ฐ์ง๋ฅผ ์ํํ๊ณ IE8์ ์ฌ์ฉํ ๋ ์ ํ์ ์ฌ์ฉํ์ง ์์ ์ ์์ต๋๋ค.
@Daniel15 ๊ทธ๊ฒ์ ์๋ง๋ ๋ ์ฌ์ด ์์ ์ผ ๊ฒ์ ๋๋ค. ์๊ฐ์ ๊ณต์ ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๋ด ๊ฒ์๋ฌผ์์ ์ ๋ ARIA๋ฅผ ๊ตฌํํ๋ ๊ฒ์ด (ํ์ฌ๋ก์๋) WCAG 2.0์ ์ค์ํด์ผ ํ๋ ์์ฉ ํ๋ก๊ทธ๋จ์์ ์ก์ธ์คํ ์ ์๊ณ ์ฌ์ฉํ ์ค๋น๊ฐ ๋์ด ์๋ค๋ ๊ฒ์ ์๋ฏธํ์ง ์๋๋ค๋ ์ ์ ์ง์ ํ๋ ค๊ณ ํ์ต๋๋ค.
์ด ์์ ์ ๋ณด๊ณ ์ถ์ต๋๋ค. ์คํฌ๋ฆฐ๋ฆฌ๋์ ํค๋ณด๋ ์ ์ฉ ์ฌ์ฉ์๋ ์ด ํ๋์ ์ก์ธ์คํด์ผ ํฉ๋๋ค. ๋๋ IE8์ ๊ทธ๋ค์ง ๊ด์ฌ์ด ์์ง๋ง ์ ์ด๋ ์ต์ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ํ ์๋ฃจ์ ์ ํ์ฉ๋ ๊ฒ์ ๋๋ค. ๋๋ IE8 ํด๋ฐฑ ์์ด๋์ด๋ฅผ ์์ฃผ ์ข์ํฉ๋๋ค. ๋ ๊ฐ์ ์ข์ PR์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ ์ค ํ๋๊ฐ ๋ณํฉ๋๋ ๊ฒ์ ๋ณด๊ณ ์ถ์ต๋๋ค.
์ด๊ฒ์ ํฐ +1์ ์ฃผ์ญ์์ค
+1 (+) ์ฐ๋ฆฌ๋ ์ด๊ฒ์ ์ ํํด์ผ ํฉ๋๋ค. ๋ฌธ์ ์ผ
aria-label(์์ฑ)
ํ์ฌ ์์์ ๋ ์ด๋ธ์ ์ง์ ํ๋ ๋ฌธ์์ด ๊ฐ์ ์ ์ํฉ๋๋ค. aria-labelledby๋ ์ฐธ์กฐํ์ญ์์ค.
aria-label์ ๋ชฉ์ ์ aria-labelledby์ ๋ชฉ์ ๊ณผ ๊ฐ์ต๋๋ค. ์ฌ์ฉ์์๊ฒ ๊ฐ์ฒด์ ์ธ์ํ ์ ์๋ ์ด๋ฆ์ ์ ๊ณตํฉ๋๋ค. ๋ ์ด๋ธ์ ๋ํ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ก์ธ์ค ๊ฐ๋ฅ์ฑ API ๋งคํ์ ์ก์ธ์ค ๊ฐ๋ฅํ ์ด๋ฆ ์์ฑ์ ๋๋ค.
๋ ์ด๋ธ ํ ์คํธ๊ฐ ํ๋ฉด์ ํ์๋๋ ๊ฒฝ์ฐ ์์ฑ์๋ aria-labelledby๋ฅผ ์ฌ์ฉํด์ผ ํ๊ณ aria-label์ ์ฌ์ฉํ์ง ์์์ผ ํฉ๋๋ค(SHOULD NOT). ์์์ ๋ด์ฉ์์ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ์์์ ์ด๋ฆ์ ๊ฒฐ์ ํ ์ ์๋ ๊ฒฝ์ฐ๊ฐ ์์ ์ ์์ผ๋ฉฐ ๊ฐ์์ ์ธ ๋ ์ด๋ธ์ ์ ๊ณตํ๋ ๊ฒ์ด ์ํ๋ ์ฌ์ฉ์ ๊ฒฝํ์ด ์๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ๋๋ถ๋ถ์ ํธ์คํธ ์ธ์ด๋ ์์์ ์ด๋ฆ์ ์ง์ ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ์์ฑ(์: HTML [HTML]์ title ์์ฑ)์ ์ ๊ณตํ์ง๋ง ์ด๋ ๋ธ๋ผ์ฐ์ ๋๊ตฌ ์ค๋ช ์ ํ์ํ ์ ์์ต๋๋ค. ๋ณด์ด๋ ๋ ์ด๋ธ์ด๋ ๋ณด์ด๋ ํดํ์ด ๋ฐ๋์งํ์ง ์์ ๊ฒฝ์ฐ ์์ฑ์๋ aria-label์ ์ฌ์ฉํ์ฌ ์์์ ์ก์ธ์ค ๊ฐ๋ฅํ ์ด๋ฆ์ ์ค์ ํ ์ ์์ต๋๋ค(MAY). ์ฌ์ฉ์ ์์ด์ ํธ๋ ์ ๊ทผ ๊ฐ๋ฅํ ์ด๋ฆ ์์ฑ์ ๊ณ์ฐํ ๋ aria-label๋ณด๋ค aria-labelledby๋ฅผ ์ฐ์ ์ํฉ๋๋ค.
@Natshah ๋ณ๊ฒฝ ์ฌํญ์ผ๋ก pull ์์ฒญ์ ํ ์ ์์ต๋๊น?
@Natshah ์ค์ ๋ก https://github.com/harvesthq/chosen/pull/2047 ์ ๊ฒํ ํ์ฌ ์ฌ๋ฐ๋ฅธ ๋ฐฉ์์ผ๋ก ๊ตฌํํ๋์ง ํ์ธํ ์ ์์ต๋๊น?
์๋ ,
์ด ๋งํฌ์์ ๋ด ๊ฒฝ์ฐ์ ๋ํด ํด๊ฒฐํ์ต๋๋ค.
https://www.drupal.org/node/2384865
๊ฐ์ฌ ํด์.
๋ณด์ :)
์. ๋ค์ ์ฝ๋์ ๊ฐ์์ผ ํฉ๋๋ค. .
if (this.is_multiple) {
this.container.html('<ul class="chosen-choices"><li class="search-field"><input type="text" aria-label="' + this.form_field_jq.parents("label") +'" value="' + this.default_text + '" class="default" autocomplete="off" style="width:25px;" /></li></ul><div class="chosen-drop"><ul class="chosen-results"></ul></div>');
} else {
this.container.html('<a class="chosen-single chosen-default" tabindex="-1"><span>' + this.default_text + '</span><div><b></b></div></a><div class="chosen-drop"><div class="chosen-search"><input type="text" aria-label="' + this.form_field_jq.parents("label") +'" autocomplete="off" /></div><ul class="chosen-results"></ul></div>');
}
๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ์ด ์ฝ๋๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค:
$(".views-exposed-widget").each(function( index, element ) {
$(this).find('.form-type-select .chosen-container input').attr("aria-label" ,$.trim($(this).find('label').text()));
});
๊ฐ์ฌ ํด์.
๋ณด์ :)
์ด์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น? ์ฐ๋ฆฌ๋ ์ต๊ทผ์ selected๋ฅผ ๊ตฌํํ๊ณ ๋ณด์กฐ ๊ธฐ์ "Jaws"๋ฅผ ์ฌ์ฉํ๋ ์ฌ์ฉ์๋ก๋ถํฐ ์ ํ ํ๋๋ฅผ ์ ํ ์ฌ์ฉํ ์ ์๋ค๋ ํผ๋๋ฐฑ์ ๋ฐ์์ต๋๋ค.
์ดํด๋ด์ผ ํ ์ค์ํ ๋ฌธ์ ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ์ด ๋ถ๋ถ์์ ์์ง์์ด ์์๋์?
๋ด๊ฐ ์๋ ๊ฒ์ ์์ง๋ง ๋ถํํ๋ ๋ธ๋ผ์ฐ์ ๋ฐ OS์ ๋ณด์กฐ ๊ธฐ์ ์ ๋ฐฉ๋ํ ์กฐํฉ์ ๊ฐ์ํ ๋ ๋ฌธ์ ๋ฅผ ๋ณต์ ํ๋ ๊ฒ์ ๋งค์ฐ ์ด๋ ต์ต๋๋ค... ์ผ๋ฐ์ ์ผ๋ก ํค๋ณด๋ ํ์์ด ๊ฐ๋ฅํ๊ณ ์ฌ๋ฐ๋ฅธ ARIA ๊ตฌํ์ด ์๋ ํ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์๋ํด์ผ ํฉ๋๋ค.
๋น ๋ฅธ ์์ ์ ์ํด ์คํฌ๋ฆฐ ๋ฆฌ๋๊ฐ ์ต์ํ ์๋ ์ ํ ํ๋๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ํ์ต๋๋ค. ์ด๋ฅผ ์ํด select ์์๋ฅผ ์จ๊ธฐ๋ ๋์ ์์ฑ๋ ์ ํ๋ ์ปจํ
์ด๋์ screenreaders-only
ํด๋์ค์ aria-hidden:true
๋ฅผ ์ถ๊ฐํฉ๋๋ค.
๋ฐ๋ผ์ chosen.jquery.js
ํ์์ 599 to 605
๋ค์๊ณผ ๊ฐ์ต๋๋ค.
container_props = {
'class': container_classes.join(' '),
'style': "width: " + (this.container_width()) + ";",
'title': this.form_field.title,
// hide widget for screen-readers
'aria-hidden': 'true'
};
616
์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
// instead of hiding the original select field, adding the .sr-only class to keep it accessible for screen readers
this.form_field_jq.addClass('sr-only').after(this.container);
์จ๊ฒจ์ง ์ ํ๊ณผ ์์ ฏ ๋ชจ๋ ํค๋ณด๋ ํฌ์ปค์ค๊ฐ ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ์๋ฒฝํ ์๋ฃจ์ ์ ์๋์ง๋ง ์ก์ธ์คํ ์ ์๋ ์์ ฏ์ด ์๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ซ์ต๋๋ค.
์ด๊ฒ์ ๋๋ฅผ ์ํด ์ผํ์ต๋๋ค.
์์ ๋ชจ๋ ์กฐ์ธ์ ๋ฐ๋๊ณ ๋ค์ ์ค์ ๋ณ๊ฒฝํ์ต๋๋ค.
this.container.bind('mousedown.chosen', function(evt) // around line 630
์๊ฒ:
this.container.bind('mousedown.chosen keydown.chosen', function(evt)
๊ฐ์ฌ ํด์
์๋ํ๋์ง ์๋ํ์ญ์์ค. ๊ตฌ์กฐ๋ ์ด๋ฌํด์ผ ํฉ๋๋ค. :)
@kirstenmalin ์ด ์ํํ ์์ ์ ๊ธฐ๋ฐ์ผ๋ก ๋ช ๊ฐ์ง ARIA ์์๋ฅผ ์ถ๊ฐํ์ต๋๋ค. ๊ทธ ์์ ์ A11Y๋ฅผ ํฅํ ์ข์ ์ถ์ง๋ ฅ์ด์์ง๋ง ๋ด๊ฐ ์ถ๊ฐํ ๋ช ๊ฐ์ง ํญ๋ชฉ์ด ๋๋ฝ๋์์ต๋๋ค.
์ฌ๊ธฐ ์ ๋ค์์ ์ํํ๋
ARIA ๋ ์ด๋ธ ๋ฐ ๊ธฐํ ์ ์ฉํ ์์ฑ
์ํ ๊ด๋ฆฌ
close_field
๋ฐ activate_field
๋ฉ์๋ ์ค์ ์์ฑ์ ์กฐ์ ํ๋ ๊ฒ์
๋๋ค.์ฌ๋ฌ ํ๋ก์ ํธ์์ ์ด ๋ฒ์ ์ ์ฌ์ฉํ๊ธฐ ์์ํ ์์ ์ด๋ฉฐ A11Y ๋ณด๊ธฐ์์ ํ๋ก์ ํธ๋ฅผ ๋ ์์ธํ ์ดํด๋ด์ ๋ฐ๋ผ ๋ณ๊ฒฝ ์ฌํญ์ผ๋ก ๋ถ๊ธฐ๋ฅผ ๊ณ์ ์ ๋ฐ์ดํธํ ๊ฒ์ ๋๋ค.
์ฌ๊ธฐ๊น์ง ์ฝ์ด์ฃผ์ ๋ชจ๋ ๋ถ๋ค๊ป ๊ฐ์ฌ๋๋ฆฌ๋ฉฐ, ๋ด์ฉ์ด ๋ง๋ค๋ ๊ฒ์ ์๊ณ ์์ผ๋ฉฐ ํผ๋๋ฐฑ์ด ์์ผ๋ฉด ์๋ ค์ฃผ์ธ์! ๋๋ ์ด๊ฒ์ ๊ฐ๋ฅํ ํ ๋ฉ๋ฆฌ ๋ฐ์ด๋ด๊ณ ์ถ๋ค.
@cooperfellows ๋ณ๊ฒฝ ์ฌํญ์ด ํฌํจ๋ ํ ๋ฆฌํ์คํธ๋ฅผ ์ด์ด์ฃผ์ธ์
@stof ์๋ฃ, ํ์ง๋ง ๋ด๊ฐ ๋งํ๋ฏ์ด ๋๋ A11Y ์ ๋ฌธ๊ฐ๊ฐ ์๋๋ฉฐ ๋ ๋ง์ ํ ์คํธ๋ฅผ ํ ๊ณํ์ ๋๋ค. ๋๋ ์ด๊ฒ์ ๋ํ ๋์ ์ฒซ ๋ฒ์งธ ์์ ์ ์ธ ํจ์ค์ ๋ํด ๊ณต์ ํ๊ณ ์ถ์์ต๋๋ค.
์ด์ ๋ํ "๊ณต์" ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น? @cooperfellows์ ๋ ธ๋ ฅ์ ๋ฐ๋ผ ๋ณ๊ฒฝ๋ ์ฌํญ์ด ์์ต๋๊น?
๋ด๊ฐ ๋ฌป๋ ์ด์ ๋ ์์ ฏ์ ์ฌ์ฉํ ์ ์๋ค๊ณ ๋ณด๊ณ ํ๋ Jaws ์ฌ์ฉ์์ ์๊ฐ ์ฆ๊ฐํ๊ณ ์์ด ๋ณด๊ณ ์๋ ์์์ ์ฌ์ฉํ ์ ์๊ฒ ํจ๊ณผ์ ์ผ๋ก ๋ ๋๋งํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ฐ๋ฆฌ๋ ๋ณต์ ํ ์ ์์ต๋๋ค. ๋์์ด ๋๋ค๋ฉด ๊ธฐ๊บผ์ด ์ง์/๊ณต์ ํ ์ ์์ต๋๊น?
pull ์์ฒญ์ด ์ด๋ฃจ์ด์ก์ง๋ง(์ฌ์ค ์ดํ ํด๊ฒฐ๋ ๋ช ๊ฐ์ง ์ฌ์ํ ๋ฌธ์ ๊ฐ ์์) ์์ง ์๋ฌด ์ผ๋ ์ผ์ด๋์ง ์์์ต๋๋ค. ์ง๊ธ ํ๋ก๋์ ์์ ์ฌ์ฉํ๊ณ ์๋ ๋ธ๋์น๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๊ทธ๋๋ ๋ค๋ฅธ ํผ๋๋ฐฑ์ ์ํฉ๋๋ค. Jaws๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋ค์ํ ์จ๋ผ์ธ ๋๊ตฌ์ ๊ฐ์ฌ์ ์์กดํ๊ณ ์์ต๋๋ค.
๋ฐ๋ผ์ ํด๋น ๋ถ๊ธฐ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฌ ํ๋ก๋์ ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํ ๊ฒ์ ๋๊น, ์๋๋ฉด ์ต๊ทผ ๋ณ๊ฒฝ ์ฌํญ์ด ์์ง ๋ณํฉ๋์ง ์์ ์ด์ ๋ฒ์ ์ ๋๊น?
(BTW ๊ฐ์ฌํฉ๋๋ค)
๋ค, ๋ง์ต๋๋ค @wcndave. PR์ ์ค์ ๋ก ๊ฒํ ๋ฅผ ์ํด ๋ค๋ฅธ ๋์ ์ฌ์ฉํ ์ ์์ง๋ง.
@cooperfellows ๊ธฐ์กด์ ์ ํํ ๊ตฌํ์ WCAG 2๋ฅผ ์ถฉ์กฑํด์ผ ํ๋ ์ ๋น๋๋ก ์ด์ํด์ผ ํ๋ฏ๋ก ์ ๊ทผ์ฑ ํ ์คํธ๋ฅผ ์ง์ํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค.
ํ ๋ฆฌํ์คํธ์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น?
์ด๋ฆฌ์์ ์ง๋ฌธ - ๋ค์ด๋ก๋ํ ์ ์๋ ์ปดํ์ผ๋ JavaScript ๋ฒ์ ์ด ์์ต๋๊น?
์๋๋ฉด ์ปคํผ์คํฌ๋ฆฝํธ๋ฅผ ์ค์นํ๊ณ ์ง์ ์ปดํ์ผํด์ผ ํฉ๋๊น?
@KITSKevinBonett ๋์์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
์ฒจ๋ถ ํ์ผ์ ์์ถ ๋ฐ ๋น์์ถ ๋ชจ๋์์ jquery ๋ฐ proto ์ ํ ๋ฒ์ ์ zip์ ๋๋ค.
@cooperfellows ๋นจ๋์ต๋๋ค . ์ฐ๋ฆฌ ํ๋ก์ ํธ์ ์ถ๊ฐํ๊ณ ๋ช ๊ฐ์ง ํ ์คํธ๋ฅผ ์ํํ๊ณ ์๋ ค ๋๋ฆฌ๊ฒ ์ต๋๋ค ...
@KITSKevinBonett Ya, A11Y ์ ๋ฌธ๊ฐ๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ์ข ๋ ์ง์ผ๋ณด๊ณ ์ถ์ต๋๋ค. ๋ฐ๋ผ์ ์ด๋ค ํผ๋๋ฐฑ(๊ฐํนํ๊ณ ๊ธ์ ์ ์ธ)๋ ๋์ด ํ๊ฐ๋ฉ๋๋ค.
์๋ ํ์ธ์ @cooperfellows - ๊ทํ์ ๊ตฌํ์ ๊ฒํ ํ์ต๋๋ค - ์ ๋ง ์ข์ต๋๋ค.
์คํฌ๋ฆฐ ๋ฆฌ๋/๋ธ๋ผ์ฐ์ ๋นํธํ์ฑ์ผ๋ก ์ธํด (์ฝ๊ฒ) ํด๊ฒฐ๋์ง ์์ ์ ์๋ ๋ช ๊ฐ์ง ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
๋๋ ์ฒจ๋ถ ํ์ผ์ ๋์ ๋ฐ๊ฒฌ์ ๋ฌธ์ํํ์ต๋๋ค. ๋๋ ๋น์ ์ด ์ ์ฉํ๊ธฐ๋ฅผ ๋ฐ๋ผ๋ 1 ๋๋ 2๊ฐ์ ์ฌ์ํ ๊ถ์ฅ ์ฌํญ์ ๋ง๋ค์์ต๋๋ค.
_์ ๋ฐ์ดํธ_
์๋ ํ์ธ์ @cooperfellows - ๋ด ๊ฐ์ฌ๊ฐ ์๋ฏธ๊ฐ ์์์ต๋๊น?
์๋ ํ์ธ์ @KITSKevinBonett ์ ๋ ์ผ์ฃผ์ผ ๋์ ํด๊ฐ๋ฅผ
@KITSKevinBonett ๊ฐ์ฌ ๊ฐ์ฌํฉ๋๋ค. ์ด๊ฒ์ ๊ฝค ์ฒ ์ ํ ๊ฒ ๊ฐ์ต๋๋ค. ๋๋ ๋น์ ์ด ๊ทธ๋ค์ ๋ฐฐ์นํ ๊ฐ์ฌ์ ์น์ ์ ๊ธฐ๋ฐ์ผ๋ก ๋ด ์๊ฐ์ ์ธ๋ถํํ์ต๋๋ค.
ํ๋ฌ๊ทธ์ธ์ ์ํด ์์ฑ๋ HTML ๋งํฌ์
ํค๋ณด๋ ์ ์ฉ ๋์
<em>
ํ๊ทธ๋ก ๋ํํ ์ ์์ต๋๋ค. ์ด ํ๊ทธ๋ ๊ธฐ์ธ์๊ผด๋ก ํ์๋ฉ๋๋ค(์ ์ด๋ Chrome์์๋).<em>
๋ฅผ ์ฌ์ฉํ์ฌ ํ
์คํธ ์ผ์น๋ฅผ ๋ํ๋ด๊ธฐ ๋๋ฌธ์ ์ด๋ค์ด ์๋ก ์ถฉ๋ํ ๊ฐ๋ฅ์ฑ์ด ์๋ค๋ ์ ์
๋๋ค.์คํฌ๋ฆฐ ๋ฆฌ๋
์๋ฆฌ์ ์๊ฐ
@cooperfellows - ๊ทํ์ ์ง๋ฌธ์ ๋ํ ๋ต๋ณ:
HTML ๋งํฌ์
ํค๋ณด๋ ๋์
CSS ๋นํ์ฑํ
์คํฌ๋ฆฐ ๋ฆฌ๋
์๋ฆฌ์
์ด ๋ชจ๋ ๊ฒ์ด ํ ๋ฆฌํ์คํธ์ ๋์์ด ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๋น์ ์ A11Y๋ก ํ๋ฅญํ ์ผ์ ํด๋์ต๋๋ค. :)
์๋ ํ์ธ์,
์ ๋ ์ฅ๋์ ๋๋ค. @cooperfellows ์ JAWS ์์ ์ ํ ์คํธ
์ด๊ฒ์ ๋ง์คํฐ์ ๋ณํฉํ๋ค๋ ์์์ด ์์ต๋๊น?
์ผ์ ์ ๋ฌด์์ ๊ฐ๋ฐ์๊ฐ ์ต๊ทผ ์๋ ์์ฑ ์ฝค๋ณด ์์์ "์ ํ"์ ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ MISP(Malware Information Sharing Platform - https://github.com/MISP/MISP)๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๊ทธ๊ฒ์ ๋์๊ฒ ์ ๋ชฝ์ด ๋์๋ค.
๋น์ ์ ๋์์ ๋ฏธ๋ฆฌ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
๋ช ๊ฐ์ง ํ ์คํธ๋ฅผ ๊ฑฐ์น ํ ์์ ๊ฒ์๋(2016๋ 7์ 1์ผ) ์ปดํ์ผ๋ ๋ฒ์ (.zip ์์นด์ด๋ธ)์ด ์๋ํ๋์ง ํ์ธํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋, ๋๋ @cooperfellows์ ์ง์ ์, ๋๋ ๋ด๊ฐ @cooperfellows ๋ณต์ ํ ๋ 'ํ ๋์ ์ง์ ์ ๋ค์ harvesthq / ๋ง์คํฐ์ ๋ณํฉ ๋ฉ๋ด ์ต์ ์ด ์ ๋๋ก JAWS๋ค์ด ์ฌ์ฉ๋์ง๋ง์ด ์์์ ์ ์ถํ์ง ์๋ ํค๋ฅผ ๋๋ฆ ๋๋ค.
@obert01๋ , ์๋ ํ์ธ์. JAWS๋ฅผ ์ฌ์ฉํ์ฌ ์ด๊ฒ์ ์ดํด์ฃผ์ ์ ์ ๋ง ๊ฐ์ฌํฉ๋๋ค. ์์ ํ๋ ๋์ ๋์น๊ณ ์๋ ํฐ ๋ถ๋ถ์ด์์ต๋๋ค.
์ด ๋ธ๋์น๋ ํ์ฌ ์ํ/๋ง์คํฐ ๋ธ๋์น๋ณด๋ค ์ค๋๋์์ต๋๋ค. ์์ ์ํ๋ก ๋๋๋ฆฌ๋ ค๋ฉด ๋ณ๊ฒฝ ์ฌํญ ์ ๊ฒํ ํ๊ณ ์กฐ์ ํด์ผ ํ ๊ฒ์ ๋๋ค.
์๋ง์ด ๋๊ธฐ ์ ์ ์ด ์์ ์ ์ํํ๋ ค๊ณ ๋ ธ๋ ฅํ ๊ฒ์ ๋๋ค. ์ ๋ ์ง๊ธ ์ง์ฅ์์ ๊ฝค ๋ฐฑ์ ์ ๋ฐ๊ณ ์์ต๋๋ค.
์ ๋ฐ์ดํธ๋๋ฉด ๊ธฐ์ฌ์ ์ค ํ ๋ช ์ด ๋ค์ ๋์ ๋จ๊ฒ ํ๊ณ ์ถ์ต๋๋ค. ๋ฐ๋ผ์ ์ ๋ฐ์ดํธ๊ฐ ์๋ฃ๋๋ฉด @stof (2016๋ ์ด๊ธฐ
์ ๋ง ๊ฐ์ฌํฉ๋๋ค.
์ฐธ๊ณ ๋ก Internet Explorer 11, Google Chrome, Firefox ESR, Firefox Standard, Microsoft Edge ๋ธ๋ผ์ฐ์ ์์ JAWS ๋ฐ NVDA ํ๋ฉด ํ๋ ๊ธฐ์ ๋ชจ๋ ์กฐํฉ์ผ๋ก ํ ์คํธํ ์ ์์ต๋๋ค.
์ด์ ๋ํ ์ง์ ์ด ์์ต๋๊น?
์ ๊ฐ์ค๋ฝ๊ฒ๋ ์ ์ผ์ ์ ๋ฌด๋ ์ด๋ฌํ ์ ๊ทผ์ฑ ๋ถ์กฑ์ผ๋ก ์ธํด ์ด๋ ค์์ ๊ฒช๊ณ ์์ต๋๋ค.
๋ํ ์ ๊ทผ์ฑ ์ง์์ ์ถ๊ฐํ๋ฉด ์ ์ ๋ ๋ง์ ๊ตญ๊ฐ์์ ๊ท์ ๊ฐ ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ์งํ๋๊ธฐ ๋๋ฌธ์ Chosen์ ๊ณต๊ณต ๋ถ๋ฌธ/ํ์ ์น์ฌ์ดํธ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค
์๋
,
์ ํํ ์์ฉ ํ๋ก๊ทธ๋จ์ด ์๊ณ ์ด์ ์ ๊ทผ์ฑ์ ์ง์ํด์ผ ํ์ง๋ง ์ด๋ฅผ ํตํด ๋ด๊ฐ ๋ณผ ์ ์๋ ๊ฒ์ ์ด๊ฒ์ด ์์ง ๋ณํฉ๋์ง ์์๋ค๋ ๊ฒ์
๋๋ค. @cooperfellows ๊ฐ ์ด๊ฒ์ ๋ง๋ฌด๋ฆฌํ๊ณ ๋ณํฉํ ์ ์๋ค๋ฉด ์ ๋ง ๋์์ด ๋ ๊ฒ์
๋๋ค.
์๋ ํ์ธ์ @obert01 ๋ฐ @csmuthukuda ,
์ต์ ๋ฒ์ ์ Chosen์ผ๋ก PR์ ์
๋ฐ์ดํธํ์ต๋๋ค. ์ฌ๊ธฐ๋ฅผ ์ดํด๋ณด์ธ์.
https://github.com/harvesthq/chosen/pull/2596
๋ด ๋ถ๊ธฐ๋ ์ ์ฅ์์ ๋ณต์ฌ๋ณธ์ ์ป๊ณ ๋์์ ํ ์คํธํ ์ ์์ต๋๋ค. ์ค์ ํผ๋๋ฐฑ์ ๋ฐ๊ณ ์ถ์ต๋๋ค.
๋ชจ๋ TravisCI ๊ฒ์ฌ๋ฅผ ํต๊ณผํ์ง๋ง A11Y ๋ฌธ์ ๋ ๋ค๋ฃจ์ง ์๋๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋น์ ์ด ๋ฌด์จ ์๊ฐ์ํ๋์ง ์ ๊ฒ ์๋ ค์ฃผ์ธ์.
์๋
ํ์ธ์ @cooperfellows ์
๋๋ค .
์ด๋ฅผ ์ ์งํ๊ธฐ ์ํด ๋ง์ ๋
ธ๋ ฅ์ ํด์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค. ๋๋ ์ด๊ฒ์ ํ
์คํธํ๊ณ ์ด์ ๋ํ ํผ๋๋ฐฑ์ ์๋ ค ๋๋ฆฌ๊ฒ ์ต๋๋ค. ๋๋ ์์ ์๊ฐ ์ด๊ฒ์ ๋ง์คํฐ์ ๋ณํฉํ๋ ๊ฒ์ ๊ณ ๋ คํ๊ธฐ๋ฅผ ์ ๋ง๋ก ๋ฐ๋๋๋ค. ์ด๊ฒ์ ์ด์ ํ์ ์๊ตฌ ์ฌํญ์
๋๋ค.
@csmuthukuda ๊ฐ์ฌํฉ๋๋ค.
@pfiller @stof @tjschuck @koenpunt , ์ด๊ฒ์ ๋ณด๊ธฐ ์ํด ๋ด๊ฐ ํ ์ ์๋ ์ผ์ ๋ฌด์์ ๋๊น? ์ ๋ง ๋๋ผ์ด ์์คํ ์ ๋น ์ง ๋ถ๋ถ์ ๋๋ค.
์๋ ํ์ธ์ @cooperfellows ์ ๋๋ค .
์ต์ ์น ๋ธ๋ผ์ฐ์ ์ JAWS ๋ฐ NVDA ํ๋ฉด ํ๋ ๊ธฐ๋ก ๊ทํ์ ๋ฉ์ง ์์ ์ ํ ์คํธํ์ต๋๋ค. ๊ณ ๋ง์ต๋๋ค !
ํค๋ณด๋๋ก ์ต์ ์ ํ์ดํ๋ก ์ด๋ํ๋ ๊ฒ์ ์ ์๋ํฉ๋๋ค. ์์ฑ ๋ฐ ์ ์ ํผ๋๋ฐฑ์ ์๋ฒฝํฉ๋๋ค. ์ฆ, ๋ชจ๋ ARIA ์์ฑ์ด ์ ์ ์๋์ด ์์ต๋๋ค. ๊ทธ๋ฌ๋ Enter ํค๋ฅผ ๋๋ฌ ์ต์ ์ ์ ํํ๋ฉด ์๋ฌด ์ผ๋ ์ผ์ด๋์ง ์์ต๋๋ค. ์ ๋ JavaScript์ ๋ํ ๊ฒฝํ์ด ์ถฉ๋ถํ์ง ์์ ๋ฌธ์ ๊ฐ Chosen์์ ๋ฐ์ํ๋์ง ๋๋ ์ด๋ฅผ ์ฌ์ฉํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฌธ์ ๊ฐ ์๋์ง ํ๋จํ ์ ์์ต๋๋ค.
์ฌํํ๋ ค๋ฉด ํค๋ณด๋๋ง ์ฌ์ฉํ์ฌ ์ ํ๋ ์ฝค๋ณด ์์์์ ์ต์ ์ ์ ํํ์ญ์์ค. ์ฝค๋ณด ์์์ ์ด์ ์ ๋ง์ถ๋ ค๋ฉด TAB, ๋ชฉ๋ก์ ํ์ํ๋ ค๋ฉด ํ์ดํ ํค, ์ ํํ๋ ค๋ฉด Enter ํค๋ฅผ ๋๋ฅด์ญ์์ค.
๋ค์ ํ ๋ฒ ์ง์ฌ์ผ๋ก ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
@overt01 ์ ๋ณด ๊ฐ์ฌํฉ๋๋ค. ๋๋ ๋ด๊ฐ ์ฐพ์ ์ ์๋ ๊ฒ์ ์ฐพ์๋ณผ ๊ฒ์ด๋ค.
@obert01 ์ด JS ๋ฐ์ด์ฌ๋ฆฐ์ ์ฌ์ฉํ์ฌ ์๋ํ๋์ง/์๋ํ์ง ์๋์ง ํ์ธํ ์ ์์ต๋๊น? ์ด ๋ฐ์ด์ฌ๋ฆฐ์ ๋ด ์ต์ ์ปค๋ฐ์ ์ปดํ์ผ๋ jQuery ๋ฒ์ ์ ๋ก๋ํฉ๋๋ค.
๋ด ํค๋ณด๋(Chrome ์ต์ ๋ฒ์ )๋ฅผ ์ฌ์ฉํ์ฌ ํด๋น ๋๋กญ๋ค์ด์ ํ์ํ ์ ์์ง๋ง ์คํฌ๋ฆฐ ๋ฆฌ๋๋ฅผ ์คํํ๊ณ ์์ง ์์ต๋๋ค.
๋น์ ์ด ๋ฌด์จ ์๊ฐ์ํ๋์ง ์ ๊ฒ ์๋ ค์ฃผ์ธ์.
์๋ ํ์ธ์ @cooperfellows ์ ๋๋ค .
JS Fiddle์๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ฌธ์ ๋ MISP(https://www.misp-project.org/)์์ Chosen์ด ์ฌ์ฉ๋๋ ๋ฐฉ์ ๋๋ฌธ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
MISP ํ๋ก์ ํธ ํ๊ณผ ํจ๊ป ํ์ธํ๊ฒ ์ต๋๋ค.
๊ฐ์ฌ ํด์
@overt01 ๊ฐ์ฌํฉ๋๋ค. ๋น์ ์ด ์์๋ธ ๊ฒ์ ์ ์๊ฒ ์๋ ค์ฃผ์ญ์์ค. ๊ทธ๊ฒ์ Chosen์ ํน์ ์ค์ ๊ณผ์ ๋นํธํ์ฑ์ ๊ฐ๋ฆฌํฌ ์ ์์ผ๋ฏ๋ก MISP๊ฐ ๊ทธ๊ฒ์ ์ด๋ป๊ฒ ํ์ฉํ๋์ง ๋ณผ ์ ์๋ ๋ฐฉ๋ฒ์ด ์๋ค๋ฉด ๊ทธ๋ค์ ๊ตฌํ์ ์ดํด๋ณด๋ ค๊ณ ๋ ธ๋ ฅํ ์ ์์ต๋๋ค.
์ด๋๊ฐ์ ๊ณต๊ฐ์ ์ผ๋ก ์ ํ๋์ด ์ฌ์ฉ๋ฉ๋๊น?
@cooperfellows ๋น๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ฅด๋ ์ต์ ๋ณ๊ฒฝ ์ฌํญ์ด ํฌํจ๋ ์ ๋น๋๋ฅผ
@obert01 @cooperfellows ๋ฐฉ๊ธ NVDA๋ก Fiddle์ ์๋ํ๋๋ฐ ํค๋ณด๋ ํ์์ด ์๋ฒฝํ๊ฒ ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค(ENTER ํค๋ก ์ ํ ํฌํจ). ๊ทธ๋ฌ๋ ์์ชฝ ๋ฐ ์๋์ชฝ ํ์ดํ ํค๋ฅผ ์ฌ์ฉํ์ฌ ํ์ํ ๋ ํ๋ฉด ํ๋ ๊ธฐ๋ "________ ์ ํ๋์ง ์์", ์ฆ "๋ฒ๋ฎค๋ค ์ ํ๋์ง ์์"์ผ๋ก ์ฝ์ต๋๋ค. ์ด๊ฒ์ด ์์๋ ๋์์ ๋๊น?
@woenlee์ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๊ทธ๋ ๊ฒ ํด๋กญ์ง๋ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์๋ง๋ ์ ํ๋ ํญ๋ชฉ์ "selected" ์์ฑ์ด ์ค์ ๋๋ ๋ฐฉ์์ ํ์ธํด์ผ ํฉ๋๋ค.
๋ชฉ๋ก ํญ๋ชฉ์ "์
๋ ฅ" ๋ฐ "์ข
๋ฃ"ํ ๋ ์์๋๋ ๋์์ ๋ฌด์์
๋๊น? ์ธ์
์๋ก ์ ํํ ํญ๋ชฉ์ ์ฝ์ด์ผ ํ๋ ๊ฒฝ์ฐ ์ ํญ๋ชฉ์ผ๋ก ์ด๋ํฉ๋๋ค.
์๊ฑด? ๋ ์ด์ ์ ํ๋์ง ์์ ํญ๋ชฉ๋ ํ์ํฉ๋๊น? @obert01 @woenlee
2019๋
8์ 25์ผ ์ผ์์ผ ์คํ 12:18 Olivier BERT [email protected]
์ผ๋ค:
@woenlee https://github.com/woenlee ์ ๊ฐ์ ๋ฌธ์ ๊ฐ
๋๋ฌด ํด๋กญ๋ค. ํ์ง๋ง ์๋ง๋ "selected" ์์ฑ์ด
์ ํํ ํญ๋ชฉ์ ํ์ธํด์ผ ํฉ๋๋ค.โ
๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/harvesthq/chosen/issues/264?email_source=notifications&email_token=ABT3ZTIESGLX6IYW4BF2QCLQGKWDVA5CNFSM4AATGGB2YY3PNVWWK3TUL52HS4DFVEXG43VMVBW63LN
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/ABT3ZTMH2KUYYE7HNO2UGH3QGKWDVANCNFSM4AATGGBQ
.
--
~์ฟ ํผ
@cooperfellows ๋๋ผ ์ ๊ทผ์ฑ ํ ์คํธ๋ฅผ ์คํํ ํ PR์์ ๋ฒ๊ทธ๋ฅผ ์ฐพ์ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฒ๊ทธ๊ฐ ์ ๊ทธ๋ ๊ฒ ํ๋์ง ์ค๋ช ํฉ๋๋ค. Abstract-chosen.coffee์ 342ํ์์ ์ ๋ ฅ์๋ "combobox"์ "listbox"๋ผ๋ ๋ ๊ฐ์ง ์ญํ ์ด ํ ๋น๋์ด ์์ต๋๋ค.
<input class="chosen-search-input" type="text" autocomplete="off" aria-expanded="false" aria-haspopup="true" role="combobox" aria-autocomplete="list" autocomplete="off" role="listbox" />
</div>
<ul class="chosen-results"></ul>
์ค ํ
์ฌ๊ธฐ์์ Harvest์ ๊ณ ๊ฐ์๊ฒ ๋น์ฉ์ ์ง๋ถํ๊ณ ๋ด๋ถ์ ์ผ๋ก ์ก์ธ์คํ ์ ์๋๋ก ํ ์คํธํ๋ ๋ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์ ๊ทผ์ฑ์ ํ์์ด๋ฉฐ Harvest์ ์ ์ง ๊ด๋ฆฌ์๊ฐ ์กฐ๋ง๊ฐ ์ด์ ๋ํ ์ง์์ ํ์ํ์ง ์๋ ๊ฒฝ์ฐ ์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์์ผ๋ฉด Harvest์์ ๋ฌผ๋ฌ๋ ๊ฒ์ ๋๋ค.
@obert01 ์ด JS ๋ฐ์ด์ฌ๋ฆฐ์ ์ฌ์ฉํ์ฌ ์๋ํ๋์ง/์๋ํ์ง ์๋์ง ํ์ธํ ์ ์์ต๋๊น? ์ด ๋ฐ์ด์ฌ๋ฆฐ์ ๋ด ์ต์ ์ปค๋ฐ์ ์ปดํ์ผ๋ jQuery ๋ฒ์ ์ ๋ก๋ํฉ๋๋ค.
๋ด ํค๋ณด๋(Chrome ์ต์ ๋ฒ์ )๋ฅผ ์ฌ์ฉํ์ฌ ํด๋น ๋๋กญ๋ค์ด์ ํ์ํ ์ ์์ง๋ง ์คํฌ๋ฆฐ ๋ฆฌ๋๋ฅผ ์คํํ๊ณ ์์ง ์์ต๋๋ค.
๋น์ ์ด ๋ฌด์จ ์๊ฐ์ํ๋์ง ์ ๊ฒ ์๋ ค์ฃผ์ธ์.
@cooperfellows
์ ๋ ์ด JS Fiddle์ JAWS 2019๋ก ํ
์คํธํ๊ณ ์์๊ณ ์์ชฝ ๋ฐ ์๋์ชฝ ํ์ดํ ํค๋ก ์ต์
์ ํ์ํ ๋ ์ฝ๊ฐ ๋ค๋ฅธ ๊ฒ์ ๊ฒฝํํ์ต๋๋ค.
Google ํฌ๋กฌ 71.0.3578.98:
JAWS๋ ๋ชฉ๋ก์ด ์ผ๋ถ ์คํฌ๋กค/๋ ๋๋ง์ ์ํํ์ง ์๋ ํ ํ์ฌ ๊ฐ์กฐ ํ์๋ ๊ฐ์ ์ฝ์ง ์์ต๋๋ค. ์ฆ, ๋ชฉ๋ก์ด ํ์๋๋ ๊ฒฝ์ฐ
<option selected="selected" value="United States">United States</option>
<option value="Afghanistan">Afghanistan</option>
<option value="Albania">Albania</option>
<option value="Algeria">Algeria</option>
<option value="American Samoa">American Samoa</option>
<option value="Andorra">Andorra</option>
<option value="Angola">Angola</option>
<option value="Anguilla">Anguilla</option>
<option value="Antarctica">Antarctica</option>
9๊ฐ ์ต์ , JAWS๋ 10๋ฒ์งธ ์ต์ ์ ๋๋ฌํ ๋๊น์ง ์๋๋ก ๋๋ฅผ ๋ ๊ฐ์กฐ ํ์๋ ์ต์ ์ ์ฝ์ง ์์ต๋๋ค. . ์์๋ Antigua and Barbuda๋ฅผ ๊ฐ์กฐ ํ์ํ๊ธฐ ์ํด ์ฝ๊ฐ์ ์๋ ์คํฌ๋กค์ ์ํํ ๋ค์ ์ต์ ์ ์ฝ์ต๋๋ค.
IE 11.0.9600.19463์์: ํ์ดํ ํค๋ก ํ์ํ๋ฉด ํ์ฌ ๊ฐ์กฐ ํ์๋ ์ต์ ์ด ์์๋๋ก ์ฌ๋ฐ๋ฅด๊ฒ ์ด๋ํ๋ ๊ฒ์ผ๋ก ์ฝ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ผ์ข ์ ๋ ๋๊ฐ ํ์ํ์ง ์์ต๋๋ค.
๋ค๋ฅธ ์ฌ๋์ด ์ด๊ฒ์ ๊ฒฝํํ๋์ง ์๊ณ ์ถ์ต๋๋ค. @obert01 @woenlee
์๋ ํ์ธ์. ์์ ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
๋ถํํ๋ ์ด๊ฒ์ ์ ๋๋ก ์๋ํ์ง ์์ต๋๋ค. ์ฌ์ฉํ๋ ๋ธ๋ผ์ฐ์ ๋ ํ๋ฉด ํ๋ ๊ธฐ์ ๊ธฐ๋ฅ์์ ๋์์ด ๋ณ๊ฒฝ๋๊ธฐ ๋๋ฌธ์ ์ค๋ช ํ๊ธฐ๊ฐ ๋งค์ฐ ์ด๋ ต์ต๋๋ค.
์ผ๋ถ aria ์์ฑ์ด ์๊ฑฐ๋ ์ ๋ฐ์ดํธ๋์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค. ์ฌ๊ธฐ์ ๋ด๊ฐ ๋ง๋๋ ์ผ๋ฐ์ ์ธ ๋ฌธ์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ข์ ์ :
์ ๋ ๋ถํํ๋ ARIA, JavaScript ๋ฐ ์น ์ ๋ฐ์ ๊ดํด ๋ง์ ๊ฒ์ ์์ง ๋ชปํฉ๋๋ค. ARIA ์์ฑ์ ์ต๋๊ฐ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์ค์ ๋๊ณ ์ ๋ฐ์ดํธ๋์๋์ง ํ์ธํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์๋์์ ์คํฌ๋ฆฐ ๋ฆฌ๋์ ์๋ฒฝํ๊ฒ ์ํธ ์์ฉํ๋ JQuery ํ๋ฌ๊ทธ์ธ์ ๋ฐ๋ชจ ๋ฐ ์ฝ๋๋ฅผ ์ฐพ์ผ์ญ์์ค.
https://a11y.nicolas-hoffmann.net/autocomplete-list/
๋ ๋ง์ ๋์์ ๋๋ฆฌ์ง ๋ชปํด ์ฃ์กํฉ๋๋ค.
์ฃผ์ ํ์ง ๋ง๊ณ ์์ ์ ๋ํ ์๋ก์ด ๋ฐ๋ชจ๋ฅผ ๊ฒ์ํ์ญ์์ค. ๋๋ ๋น์ ์ ์ํด ํ ์คํธํ๊ฒ๋์ด ๊ธฐ์ฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ฌ๊ธฐ์์ Harvest์ ๊ณ ๊ฐ์๊ฒ ๋น์ฉ์ ์ง๋ถํ๊ณ ๋ด๋ถ์ ์ผ๋ก ์ก์ธ์คํ ์ ์๋๋ก ํ ์คํธํ๋ ๋ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์ ๊ทผ์ฑ์ ํ์์ด๋ฉฐ Harvest์ ์ ์ง ๊ด๋ฆฌ์๊ฐ ์กฐ๋ง๊ฐ ์ด์ ๋ํ ์ง์์ ํ์ํ์ง ์๋ ๊ฒฝ์ฐ ์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์์ผ๋ฉด Harvest์์ ๋ฌผ๋ฌ๋ ๊ฒ์ ๋๋ค.