Drupalã³ãã¥ããã£ããã®ã¢ã¯ã»ã·ããªãã£ãšéžæã«é¢ãããã®ãã£ã¹ã«ãã·ã§ã³ã«ãªã³ã¯ããã ãã§ãã
http://drupal.org/node/1271622#comment -4962028
Chosenã«ã¯å€ãã®åªãããŠãŒã¶ããªãã£ã®åŒ·åããããŸãã
ãã®è°è«ããã®é¢é£éšåïŒ
ããŸãã«ãå€ãã®äœæ¥ãå¿ èŠã§ãã ã¢ã¯ã»ã·ããªãã£ãèæ ®ãããŠããªãããã«èŠããŸã
ãã¹ãŠãã®ãŠã£ãžã§ããã«å«ãŸããŠããããã*ã«ã¯å€ãã®WAI-ARIAãšJSã®äœæ¥ãå¿ èŠã«ãªããŸãã
*ãããWCAG2.0ã«æºæ ãããããšããŸããFF6 / JAWS12ã§ã®30ç§ã®ã¬ãã¥ãŒããã®æ倧ã®åé¡ã¯ã
ã³ã³ããŒãã³ãã¯ãå ¥åã¿ã€ã=ããã¹ããšããã«ç¶ãé åºãªããªã¹ããšããŠè¡šãããŸã
ãŠãŒã¶ãŒãéå»ã«ããã²ãŒãããå¿ èŠããããã¹ãŠã®ãªãã·ã§ã³ïŒåœã®å Žåã¯243ïŒã®
ãã£ãŒã«ããç¡èŠããããšããã§ããŸãã
æ€çŽ¢ããã¹ããã£ãŒã«ãã«ã¯ãåå¿è åãã®ã©ãã«ã䜿çšã§ããŸãããä¿®æ£ã¯ç°¡åã§ãã
ãã倧ããªåé¡ã¯ãçæããããªã¹ãã¢ã€ãã ã«ã¢ã³ã«ãŒãå«ãŸããŠããªãããšã§ã...ã¹ã¯ãªãŒã³ãªãŒããŒã®ãŠãŒã¶ãŒã¯ããªã¹ãã¢ã€ãã ã®ç®çãç¥ã£ãŠããå Žåãã¢ã¯ã·ã§ã³ãå®è¡ã§ããŸããïŒ
ããã¯ãšãŠãçŽ æµãªãã©ã°ã€ã³ã§ãïŒ ç§ã¯ãã®æ©èœãæ¬åœã«å¥œãã§ãã
ããè¯ãã¢ã¯ã»ã·ããªãã£ãžã®å°æ¥ã®çºå±ã¯ãããŸããïŒ WAI-ARIAãè¿œå ããŠWCAG2.0ã«æºæ ããã???
thefilamentsgroupsã®ãŠã§ããµã€ãã§ãã®èšäºãèªãã ã°ããã§ãã 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ããã®ãããžã§ã¯ãã«åå ãããåãã¯ãããŸããïŒ
æ¯æŽæè¡ã§åäœããå Žåã§ããããŒããŒãã®ã¿ã®ãŠãŒã¶ãŒã§ãåäœããããšã確èªããããã«ãã¹ãããå¿ èŠããããŸãã
ãšããã§ãããã¯ã¢ã¯ã»ã·ããªãã£ã®æ¹åã®ããã«ã¶ãäžãã£ãŠããæç©ããã§ãã¯ããããã®åãªãæ¹æ³ã§ãããWAVEã¯ã¯ãªãŒã³ã¢ããããå¿ èŠãããããã€ãã®ããªãåºæ¬çãªããšãç¹å®ããŸãã-> http://wave.webaim.org/report?url=http%3A% 2FïŒ 2Fharvesthq.github.comïŒ 2FchosenïŒ 2FïŒjs = 2
ãããã®ã¢ã¯ã»ã·ããªãã£ã®åé¡ã®ããããã察åŠãããŸãããïŒ ç§ã¯å€§åŠã®ã¡ã€ã³ãµã€ãã§ããã䜿çšããã®ãæ¬åœã«å¥œãã§ããããããã®ã¢ã¯ã»ã·ããªãã£ã®åé¡ã¯ç§ãå 延ã°ãã«ããŸãã
+ 1-ç®ã®äžèªç±ãªãŠãŒã¶ãŒãããéžæããããããããŠã³ãªã¹ãã¯äœ¿ãã«ããããªãã·ã§ã³ã®éžæã«åé¡ããããšãããã£ãŒãããã¯ãåãåããŸããã 圌ãã¯ã¹ã¯ãªãŒã³ãªãŒããŒãšããŠJAWS14ã䜿çšããŠããŸãã
ããã²ãŒã·ã§ã³å°çšã®ããŒããŒãã䜿çšããŠã¿ãŸããã ã¢ã€ãã ã®éžæã¯éåžžã«çŽæçã«æ©èœããŸãïŒäžã«ç§»åããŠæ°ããã¢ã€ãã ã®ãªã¹ããéããäž/äžã«ç§»åããŠãªã¹ããããã²ãŒãããescã§ãªã¹ããéããEnterããŒãæŒããŠéžæããŸãïŒã è€æ°éžæããã¢ã€ãã ãåé€ããã®ã¯ç°¡åã§ãããïŒããã¯ã¹ããŒã¹ïŒãåäžéžæã®ããããããŠã³ãã¯ãªã¢ãããšãããã«å€ãã®èª²é¡ãçºçããŸããã ã¢ã€ãã ãéžæããããäžãæŒããŠãªã¹ããå床éãããªãã·ã§ã³ãéžæãããªããªããŸã§äžã«ç§»åã§ããããã«èŠããŸãïŒäŸã®ããã«æåã®ã¢ã€ãã ã空çœã®å Žåã¯éåžžã®ããããããŠã³ãæ©èœããŸãïŒããç§ã¯EnterããŒãæŒããŠnullãªãã·ã§ã³ãéžæã§ããŸããã ãªãã·ã§ã³ãå®å šã«ïŒãŸãã¯å°ãªããšã空çœã®ããã©ã«ããªãã·ã§ã³ïŒéžæ解é€ããããã®ããã€ãã®æ¹æ³ã¯éåžžã«äŸ¿å©ã§ãã
ãŸããããã䟡å€ããããã©ããã¯ããããŸããããããŒã¿ããŸã é衚瀺ã®éžæã³ã³ãããŒã«ã«ä¿åãããŠããããšã«æ°ä»ããŸããïŒããããã©ãŒã ã«æž¡ãããæ¹æ³ã ãšæããŸãïŒã éžæãå€æŽããããšãã«éžæãããããããããŠã³ãæŽæ°ããããšã䟡å€ããããããããŸãã-UAã¯ããã°ã©ã ã§éžæã³ã³ãããŒã«ãšå¯Ÿè©±ã§ããéžæããããã®ããã¡ãµãŒããšããŠæ±ãããšãã§ããã®ã§ããããWCAGã®åºæº4.1.2ãæºãããã©ãããè°è«ããŠããŸããã¢ã¯ã»ã·ããªãã£ã®ç®çã®ããã«ããã®äžã«ã
2çªç®ã®éšåã§ã¯ãéžæããã³ã³ãããŒã«ã®å€ãããã°ã©ã ã§å€æŽããŠéžæãããã®ãæŽæ°ããå Žåã§ãã listz:updated
ãããªã¬ãŒããå¿
èŠããããŸãã
ãããå¿
èŠãªã®ã¯ãChosenã«éç¥ããããã«å€ãããã°ã©ã ã§å€æŽããããšãã«ãã©ãŠã¶ãŒãã€ãã³ããããªã¬ãŒããªãããã§ãïŒããã°ã©ã ã§å€æŽããŠããããããã©ãŠã¶ãŒã¯ã€ãã³ããããªã¬ãŒããŠããŸããããç¡éã«ãŒããåé¿ããå¿
èŠããããŸãïŒã
ä»æ¥ã¯ã¢ã¯ã»ã·ããªãã£ã®è¿œå ã«ã€ããŠæ€èšããŸãã @marklagendijkããªãã
ããã¯åœ¹ç«ã€ãããããŸããããããã§ã¯ãªããããããŸããããåŸãã¹ãå³æ Œãªã¢ã¯ã»ã·ããªãã£ã¬ã€ãã©ã€ã³ããããããŒãžã§ã³1.0.0ã§ã¯ãã¯ã©ã€ã¢ã³ãã®ã¢ã¯ã»ã·ããªãã£ãã¹ã¿ãŒã次ã®ã³ã¡ã³ããè¿ããŸããã
2.ãã§ã€ã¯ããããããŠã³ã«ç®ã«èŠããçŠç¹ã¯ãããŸããã
ç§ã¯ãããDrupalChosenã¢ãžã¥ãŒã«ãšçµã¿åãããŠäœ¿çšââããŠããŸãã ãŸããå ¥åã«å°éãããšãå ¥åã§ããããšã«æ°ã¥ããããçµæãèŠã€ãããŸããããªã©ã®çµæãè¿ãããªãããšã«æ°ä»ããèŠèŠé害è ã®ãã¹ã¿ãŒãããŸãã
@marklagendijk
ãã®åé¡ã«é¢ããé²æç¶æ³ã Drupalã³ã¢ã«Chosenãè¿œå ããããã«ããã®åé¡ãåå°å
¥ããããšãæ€èšããŠããŸãããããã¡ã€ã³ã®ãããã«ãŒã§ãã
ç§ã¯ãããã©ã®ããã«ããã§è¡ãããããšãã§ãããã«ã€ããŠã®æ¬åœã«è¯ãäŸãèŠã€ããŸããïŒ
http://cookiecrook.com/test/aria/multiselect/listbox.html
ãããjavascriptã§ãïŒ http ïŒ
ããã¯ãéžæããåºæ¬çãªæ©èœã«ã»ãŒæ£ç¢ºã«å¯Ÿå¿ããŠãããšæããŸãããªã¹ãããã¯ã¹ãšè€æ°éžæå¯èœãªariaããããã£ã䜿çšããŠå®è£
ããã®ã¯éåžžã«ç°¡åã«èŠããŸãã
http://www.w3.org/TR/wai-aria/roles#listbox
http://www.w3.org/TR/wai-aria/states_and_properties#aria -multiselectable
èªåã§ããããäœæããŸãããjsã¯ããã»ã©ç±å¿ã§ã¯ãããŸããã
äžã«ãªã³ã¯ãããŠããç§ã®PRã¯ãçŸåšéžæãããŠããã³ãŒãããŒã¹ããå®å šã«ã¢ã¯ã»ã¹å¯èœãªãŠã£ãžã§ãããäœæããããã®ã詳现ãã§ã¯ãªããããã°ã¬ãã·ããšã³ãã³ã¹ã¡ã³ãã®ååãäžå¿ãšããã¯ããã«åçŽãªã¢ãããŒãã«ãããœãªã¥ãŒã·ã§ã³ãæäŸããŸãã ãããããã£ãŒãããã¯ãæè¿ããŸãã
IE8ã§ãŸã é©åã«ãµããŒããããŠããªãã®ã«ããªãARIAã«çŠç¹ãåãããã®ã§ããïŒ æ®å¿µãªããããã®5幎åã®ãã©ãŠã¶ã¯ããŸã äžè¬çãªãã©ãŠã¶ã®ãªã¹ãã«å«ãŸããŠããŸãã ããã¯ãã¢ã¯ã»ã·ããªãã£ã¹ãã£ã³ãå®è¡ããŠããéãARIAã«äŸåããå®è£ ã倱æããããšãæå³ããŸãã
éžæããã¹ãŠç¡å¹ã«ãããŠãŒã¶ãŒã«å ã®éžæãæäŸãããã©ãŒã«ããã¯ã¡ãœããã䜿çšããŠã¿ãŸãããïŒ ããã¯ãéžæãç¡å¹ã«ããå°ããªJavaScriptã³ãŒãã䜿çšããïŒé衚瀺ã®ïŒãªã³ã¯ãè¿œå ããããšã§å®çŸã§ããŸãã
IE8 ARIAãµããŒãã«é¢ãããªãœãŒã¹ïŒ http ïŒ
IE8ã䜿çšãããŠããå Žåã¯ããã©ãŠã¶ãŒ/æ©èœã®æ€åºãè¡ãã ãã§ãChosenã䜿çšã§ããŸããã
@ Daniel15ããã¯ãããããã£ãšç°¡åãªä¿®æ£ã§ãããã ããªãã®èããå ±æããŠãããŠããããšãã ç§ã®æçš¿ã§ã¯ãARIAã®å®è£ ïŒä»ã®ãšããïŒã¯ãWCAG 2.0ã«æºæ ããå¿ èŠã®ããã¢ããªã±ãŒã·ã§ã³ã§ã¢ã¯ã»ã¹å¯èœã§ãããããã«äœ¿çšã§ããããšãæå³ãããã®ã§ã¯ãªãããšãææããããšããŠããŸããã
ãããæ©èœããã®ãèŠããã§ãã ã¹ã¯ãªãŒã³ãªãŒããŒãšããŒããŒãã®ã¿ã®ãŠãŒã¶ãŒã¯ãå®éã«ãããã®ãã£ãŒã«ãã«ã¢ã¯ã»ã¹ããå¿ èŠããããŸãã ç§ã¯IE8ã«ã¯ããŸãé¢å¿ããããŸããããå°ãªããšãææ°ã®ãã©ãŠã¶ãŒåãã®ãœãªã¥ãŒã·ã§ã³ã¯åãå ¥ããããŸãã ç§ã¯IE8ãã©ãŒã«ããã¯ã®ã¢ã€ãã¢ããšãŠã奜ãã§ãã 2ã€ã®åªããPRãããããã§ã-ã©ã¡ãããããŒãžãããã®ãèŠãŠã¿ããã§ãã
ããã«å€§ããª+1ããé¡ãããŸã
+1ïŒ+ïŒããã¯Chosenã«ããå¿ èŠããããŸãã ããã¯åé¡ã§ã
aria-labelïŒããããã£ïŒ
çŸåšã®èŠçŽ ã«ã©ãã«ãä»ããæååå€ãå®çŸ©ããŸãã aria-labelledbyãåç §ããŠãã ããã
aria-labelã®ç®çã¯ãaria-labelledbyã®ç®çãšåãã§ãã ããã¯ããªããžã§ã¯ãã®èªèå¯èœãªååããŠãŒã¶ãŒã«æäŸããŸãã ã©ãã«ã®æãäžè¬çãªã¢ã¯ã»ã·ããªãã£APIãããã³ã°ã¯ãã¢ã¯ã»ã·ãã«åããããã£ã§ãã
ã©ãã«ããã¹ããç»é¢ã«è¡šç€ºãããŠããå Žåãäœæè ã¯aria-labelledbyã䜿çšããå¿ èŠããããaria-labelã䜿çšããªãã§ãã ããã èŠçŽ ã®ååãèŠçŽ ã®ã³ã³ãã³ãããããã°ã©ã ã§æ±ºå®ã§ããªãå Žåãã衚瀺å¯èœãªã©ãã«ãæäŸããããšãæãŸãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã§ã¯ãªãå ŽåããããŸãã ã»ãšãã©ã®ãã¹ãèšèªã¯ãèŠçŽ ã«ååãä»ããããã«äœ¿çšã§ããå±æ§ïŒããšãã°ãHTML [HTML]ã®titleå±æ§ïŒãæäŸããŸãããããã¯ãã©ãŠã¶ãŒã®ããŒã«ããããæ瀺ããå ŽåããããŸãã 衚瀺å¯èœãªã©ãã«ãŸãã¯è¡šç€ºå¯èœãªããŒã«ããããæãŸãããªãå Žåãäœæè ã¯aria-labelã䜿çšããŠèŠçŽ ã®ã¢ã¯ã»ã¹å¯èœãªååãèšå®ã§ããŸãïŒMAYïŒã ãŠãŒã¶ãŒãšãŒãžã§ã³ãã¯ãã¢ã¯ã»ã·ãã«ãªnameããããã£ãèšç®ãããšãã«ãaria-labelãããaria-labelledbyãåªå ããŸãã
@Natshahå€æŽãå ããŠãã«ãªã¯ãšã¹ããå®è¡ã§ããŸããïŒ
@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()));
});
ããããšãã
ãããã:)
ããã«é¢ããæŽæ°ã¯ãããŸããïŒ æè¿ãchooseãå®è£ ããassistative technology "Jaws"ã䜿çšããŠãããŠãŒã¶ãŒãããselectãã£ãŒã«ãããŸã£ãã䜿çšã§ããªããšãããã£ãŒãããã¯ããããŸããã
調æ»ãã¹ãéèŠãªåé¡ã®ããã§ãã ãã®é¢ã§äœãåãã¯ãããŸãããïŒ
ç§ãç¥ã£ãŠããããšã¯äœããããŸããããæ®å¿µãªãããæ¯æŽæè¡ãšãã©ãŠã¶ã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èŠçŽ ãè¿œå ããããšã«
ç§ã¯ããã§æ¬¡ã®ããšãè¡ã
ARIAã©ãã«ããã³ãã®ä»ã®åœ¹ç«ã€å±æ§
ç¶æ ã®ç®¡ç
close_field
ããã³activate_field
ã¡ãœããã®éã«å±æ§ã調æŽããããšã§ããããã€ãã®ãããžã§ã¯ãã§ãã®ããŒãžã§ã³ã®äœ¿çšãéå§ããA11Yãã¥ãŒãããããžã§ã¯ãããã詳现ã«ç¢ºèªã§ããããã«ãå€æŽãå ããŠãã©ã³ããæŽæ°ãç¶ããŸãã
ãããŸã§èªãã§ããããã¹ãŠã®äººã«æè¬ããŸããããããããããšãç¥ã£ãŠããŸãããã£ãŒãããã¯ãããã°æããŠãã ããã ãããå¯èœãªéãæšé²ããããšæããŸãã
@cooperfellowsã¯ãå€æŽãå ããŠãã«ãªã¯ãšã¹ããéããŠãã ãã
@stofå®äºããŸããããç§ãèšã£ãããã«ãç§ã¯A11Yã®å°é家ã§ã¯ãªãã®ã§ãããã«ãã¹ããè¡ãäºå®ã§ãã ç§ã¯ããã§ç§ã®æåã®å®å®ãããã¹ã«ã€ããŠå ±æãããã£ãã ãã§ãã
ããã«é¢ãããå ¬åŒãã¢ããããŒãã¯ãããŸããïŒ @cooperfellowsã®åãçµã¿ã«åºã¥ããŠå€æŽãå ããããŸãããïŒ
ç§ãå°ããçç±ã¯ããŠã£ãžã§ããã䜿çšäžå¯ãšããŠå ±åããJawsãŠãŒã¶ãŒã®æ°ãå¢ããŠãããèŠãŠãããã©ãŒã ã䜿çšäžèœã«ãªã£ãŠããããšãå¹æçã«ç€ºããŠããããã§ãã
ç§ãã¡ã¯è€è£œããããšãã§ããŸãããããå©ãã«ãªããªãäŸãæ¯æŽ/å ±æããã®ã¯ãšãŠã幞ãã§ããïŒ
ãã«ãªã¯ãšã¹ããè¡ãããŸãããïŒäºåŸã«è§£æ±ºãããããã€ãã®ãã€ããŒãªåé¡ããããŸããïŒããŸã äœãèµ·ãããŸããã§ããã ç§ãçŸåšæ¬çªç°å¢ã§äœ¿çšããŠãããã©ã³ãã¯æ¬¡ã®ãšããã§ãã
ããããä»ã®ãã£ãŒãããã¯ã欲ããã§ãã ç§ã¯Jawsãæã£ãŠããªãã®ã§ãããŸããŸãªãªã³ã©ã€ã³ããŒã«ããã®ç£æ»ã«äŸåããŠããŸãã
ã€ãŸãããã®ãã©ã³ãã¯åºæ¬çã«çŸåšã®æ¬çªç°å¢ã«å€æŽãå ãããã®ã§ããããããšãæè¿ã®å€æŽããŸã ããŒãžãããŠããªã以åã®ããŒãžã§ã³ã§ããïŒ
ïŒããããšããšããã§ïŒ
ã¯ããããã§ã@wcndaveã PRã¯å®éã«ã¬ãã¥ãŒã®ããã«ä»ã®ç®ã䜿ãããšãã§ããŸããã
@cooperfellows WCAG 2ãæºããå¿ èŠãããæ°ãããã«ãã«æ¢åã®éžæãããå®è£ ã移æ€ããå¿ èŠãããã®ã§ãã¢ã¯ã»ã·ããªãã£ãã¹ããåãã§æ¯æŽããŸãã
ãã«ãªã¯ãšã¹ãã®æŽæ°ã¯ãããŸããïŒ
ã°ããã質å-ããŠã³ããŒãã§ããã³ã³ãã€ã«æžã¿ã®JavaScriptããŒãžã§ã³ã¯ãããŸããïŒ
ãŸãã¯ãcoffeescriptãã€ã³ã¹ããŒã«ããŠèªåã§ã³ã³ãã€ã«ããå¿
èŠããããŸããïŒ
@KITSKevinBonettå©ããŠãããŠããããšãïŒ
æ·»ä»ãããŠããã®ã¯ãå§çž®ããã³éå§çž®ã®äž¡æ¹ã®jqueryããã³protoã¿ã€ãããŒãžã§ã³ã®zipã§ãã
@cooperfellowsããã¯éãã£ãã ç§ãã¡ã®ãããžã§ã¯ãã«è¿œå ããããã€ãã®ãã¹ããè¡ããããªãã«ç¥ãããŸã...
@KITSKevinBonett Yaãç§ã¯A11Yã®å°é家ã§ã¯ãªãã®ã§ãããå°ãç®ãåããããšæã£ãŠããŸãã ãããã£ãŠããã£ãŒãããã¯ïŒéé ·ã§ååããªãã®ïŒã¯ãããããã§ãã
ããã«ã¡ã¯@ cooperfellows-ç§ã¯ããªãã®å®è£ ãã¬ãã¥ãŒããŸãã-確ãã«ãšãŠãè¯ãã§ãã
ã¹ã¯ãªãŒã³ãªãŒããŒãšãã©ãŠã¶ã®éäºææ§ãåå ã§ïŒç°¡åã«ïŒè§£æ±ºã§ããªãåé¡ãããã€ããããŸãã
æ·»ä»ã®ã«ç§ã®çºèŠãææžåããŸããã ç§ã¯ããªãã圹ç«ã€ãšæã1ã€ã2ã€ã®ãã€ããŒãªæšèŠãããŸããã
_ã¢ããããŒã_
ããã«ã¡ã¯@ cooperfellows-ç§ã®ç£æ»ã¯çã«ããªã£ãŠããŸããïŒ
ããã«ã¡ã¯@KITSKevinBonettç§ã¯äŒæã§1é±éäžåšã§ããã ä»ã®ä»äºã«è¿œãã€ãããããã«èŠãŠãããŸãã ãã£ãŒãããã¯ãããããšãããããŸãããããã¯åœ¹ç«ã€ãšç¢ºä¿¡ããŠããŸãã
@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 / masterãšããŒãžããããããšãã¡ãã¥ãŒãªãã·ã§ã³ã¯JAWSã«ãã£ãŠé©åã«èªã¿äžããããŸãããENTERããŒã§ãã©ãŒã ãéä¿¡ãããŸããã
ããã«ã¡ã¯@ obert01 ãJAWSã䜿çšããŠãããèŠãŠãããŠããããšããããã¯ç§ã®ä»äºäžã«æ¬ ããŠãã倧ããªéšåã§ããã
ãã®ãã©ã³ãã¯ãçŸåšã®harvesthq / masterãã©ã³ãããããªãå€ããªã£ãŠããŸããåäœç¶æ ã«æ»ãã«ã¯ãå€æŽã確èªã
ç§ã¯ææ«ãŸã§ã«ããã«å°éããããšããŸããç§ã¯ä»ä»äºã§ããªãããã¯ã¢ãããããŠããŸãã
æŽæ°ãããããå¯çš¿è ã®1人ã«ããäžåºŠæ³šç®ããŠãããããã®ã§ãæŽæ°ãéä¿¡ããŸãã
ã©ããããããšãã
åèãŸã§ã«ã次ã®ãã©ãŠã¶ãŒã䜿çšããŠãJAWSãšNVDAã¹ã¯ãªãŒã³ãªãŒããŒã®ãã¹ãŠã®çµã¿åããã§ãã¹ãã§ããŸãïŒInternet Explorer 11ãGoogle ChromeãFirefox ESRãFirefox StandardãMicrosoftEdgeã
ããã«ã€ããŠäœãé²å±ã¯ãããŸããïŒ
ç³ãèš³ãããŸããããç§ã®æ¥åžžæ¥åã¯ãã®ã¢ã¯ã»ã·ããªãã£ã®æ¬ åŠã«èŠããã§ããŸãã
ããã«ãã¢ã¯ã»ã·ããªãã£ãµããŒããè¿œå ãããšããŸããŸãå€ãã®åœã§èŠå¶ããã®ããã«è¡ãããŠãããããChosenãå ¬å ±éšé/管çWebãµã€ãã§äœ¿çšã§ããããã«ãªããŸãã
ããããšã
ããã«ã¡ã¯ã
éžæããã¢ããªã±ãŒã·ã§ã³ããããã¢ã¯ã»ã·ããªãã£ããµããŒãããå¿
èŠããããŸãããããã確èªãããšããŸã ããŒãžãããŠããªãããšãããããŸãã @cooperfellowsããããå®æãããããŒãžããŠãã ããã
ããã«ã¡ã¯@ obert01ãš@csmuthukuda ã
éžæããææ°ããŒãžã§ã³ã§PRãé«éåããããã«æŽæ°ãè¡ããŸããããã¡ããã芧ãã ããïŒ
https://github.com/harvesthq/chosen/pull/2596
ç§ã®ãã©ãŒã¯ããããªããžããªã®ã³ããŒãå ¥æããŠãããªãã®åŽã§ãã¹ãããããšãã§ããŸãã å®ç掻ã§ã®ãã£ãŒãããã¯ã欲ããã§ãã
ãã¹ãŠã®TravisCIãã§ãã¯ã«åæ ŒããŸããããA11Yã®åé¡ãã«ããŒããŠãããšã¯æããŸããã ã©ãèããŠãããæããŠãã ããã
ããã«ã¡ã¯@cooperfellows ã
ãããåç¶ãããããã®ããªãã®ç®èº«ã«æè¬ããŸãã ããããã¹ãããŠããã£ãŒãããã¯ããç¥ããããŸãã ãªãŒããŒãããããã¹ã¿ãŒã«ããŒãžããããšãæ€èšããŠãããããšãæ¬åœã«æãã§ããŸãã ããã¯çŸåšå¿
é ã®èŠä»¶ã§ãã
ããããšã@csmuthukudaç§ã¯ãããããŒãžãããããšãæãã§ããŸã....
@pfiller @stof @tjschuck @koenpunt ããããèŠãŠãããããã«ç§ã«ã§ããããšã¯ãããŸããïŒ ãã以å€ã®ç¹ã§ã¯ä¿¡ããããªãã»ã©çŽ æŽãããã·ã¹ãã ã«ã¯ãæ¬åœã«æ¬ ããŠããéšåã§ãã
ããã«ã¡ã¯@cooperfellows ã
ææ°ã®Webãã©ãŠã¶ãŒãšJAWSããã³NVDAã¹ã¯ãªãŒã³ãªãŒããŒã䜿çšããŠããã°ãããäœæ¥ããã¹ãããŸããã ããããšã ïŒ
ããŒããŒãã䜿çšããŠãªãã·ã§ã³ãç¢å°è¡šç€ºãããšããŸãæ©èœããŸããé³å£°ãšç¹åã®ãã£ãŒãããã¯ã¯å®ç§ã§ããã€ãŸãããã¹ãŠã®ARIAå±æ§ãæ確ã«å®çŸ©ãããŠããŸãã ãã ããEnterããŒãæŒããŠãªãã·ã§ã³ãéžæããŠããäœãèµ·ãããŸããã ç§ã¯ãåé¡ãChosenã«èµ·å ããã®ããããã䜿çšããã¢ããªã±ãŒã·ã§ã³ã«ååšããã®ããå€æããã®ã«ååãªJavaScriptã®çµéšããããŸããã
åçŸããã«ã¯ãããŒããŒãã®ã¿ã䜿çšããŠãéžæããã³ã³ãããã¯ã¹ã®ãªãã·ã§ã³ãéžæããŠã¿ãŠãã ãããTabããŒã§ã³ã³ãããã¯ã¹ã«ãã©ãŒã«ã¹ããç¢å°ããŒã§ãªã¹ããåç §ããEnterããŒã§éžæããŸãã
æ¹ããŠãããããšãããããŸããã
ãã®æ å ±ãããããšã@ obert01ã ç§ã¯èŠãŠãç§ãèŠã€ããããšãã§ãããã®ãèŠãŠãããŸãã
@ obert01ãã®JSãã£ãã«ã䜿çšããŠãæ©èœããŠãã/æ©èœããŠããªãããšã確èªã§ããŸããïŒ ãã®ãã£ãã«ã¯ãã³ã³ãã€ã«ãããjQueryããŒãžã§ã³ã®ææ°ã®ã³ããããããŒãããŠããŸãã
ããŒããŒãïŒChromeææ°ïŒã䜿çšããŠãã®ããããããŠã³ãããã²ãŒãã§ããŸãããã¹ã¯ãªãŒã³ãªãŒããŒãå®è¡ããŠããŸããã
ã©ãèããŠãããæããŠãã ããã
ããã«ã¡ã¯@cooperfellows ã
JSãã£ãã«ã«åé¡ã¯ãããŸããã ãããã£ãŠãåé¡ã¯MISPïŒhttps://www.misp-project.org/ïŒã§ã®Chosenã®äœ¿çšæ¹æ³ã«ãããšæããŸãã
ããã¯MISPãããžã§ã¯ãããŒã ã«ç¢ºèªããŸãã
ããããšã
@ obert01ã«æè¬ããŸãã ããªããèŠã€ãããã®ãç§ã«ç¥ãããŠãã ããã éžã°ããç¹å®ã®èšå®ãšã®éäºææ§ã瀺ããŠããå¯èœæ§ãããã®ã§ãMISPããããã©ã®ããã«å©çšããŠãããã確èªããæ¹æ³ãããã°ããããã®å®è£ ãèŠãŠã¿ãããšãã§ããŸãã
éžã°ããã®ã¯ã©ããã§å ¬ã«äœ¿ãããŠããŸããïŒ
@cooperfellowsã¯ããã«ãæ¹æ³ãããããªãææ°ã®å€æŽãå ããæ°ãããã«ããæããŠãã ããã
@ obert01 @cooperfellows NVDAã§Fiddleãè©ŠããŸããããããŒããŒãããã²ãŒã·ã§ã³ã¯å®å šã«æ©èœããŠããããã§ãïŒEnterããŒã§ã®éžæãå«ãïŒã ãã ããäžäžã®ç¢å°ããŒã䜿çšããŠããã²ãŒããããšãã¹ã¯ãªãŒã³ãªãŒããŒã«ã________æªéžæããã€ãŸããããã¥ãŒããéžæãããŠããŸããããšè¡šç€ºãããŸãã ããã¯äºæ³ãããåäœã§ããïŒ
@woenleeãšåãåé¡ããããŸãã ããã»ã©æ害ã§ã¯ãããŸããã ãã ããéžæããã¢ã€ãã ã«ãéžæãããå±æ§ãèšå®ãããŠããæ¹æ³ã確èªããå¿ èŠããããããããŸããã
ãªã¹ãã¢ã€ãã ããå
¥åãããã³ãçµäºããããšãã«äºæ³ãããåäœã¯äœã§ããïŒ ãã€
æ°ããéžæããã¢ã€ãã ãèªã¿åãå¿
èŠãããå Žåã¯ãæ°ããã¢ã€ãã ã«ç§»åããŸã
ã¢ã€ãã ïŒ ãŸããéžæãããªããªã£ããã®ãçºè¡šããŸããïŒ @ obert01 @woenlee
12:18ãªãªãŽã£ãšBERTã®æ¥ã2019幎8æ25æ¥ã«ã¯[email protected]
æžããŸããïŒ
@woenleehttps ïŒ //github.com/woenleeãšåãåé¡ããŸãã ããã§ã¯ãªã
ãšãŠãæ害ã§ãã ããããããããããéžæããããå±æ§ã
éžæããé ç®ã確èªããå¿ èŠããããŸããâ
ããªããèšåãããã®ã§ãããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/harvesthq/chosen/issues/264?email_source=notifications&email_token=ABT3ZTIESGLX6IYW4BF2QCLQGKWDVA5CNFSM4AATGGB2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN
ãŸãã¯ã¹ã¬ããããã¥ãŒãããŸã
https://github.com/notifications/unsubscribe-auth/ABT3ZTMH2KUYYE7HNO2UGH3QGKWDVANCNFSM4AATGGBQ
ã
-
ãã¯ãŒããŒ
@cooperfellowsããã€ãã®axã¢ã¯ã»ã·ããªãã£ãã¹ããå®è¡ããåŸãç§ã¯ããªãã®PRã«ãã°ãèŠã€ããããã§ããããã¯ãããããããè¡ã£ãŠããçç±ã説æããŠããŸãã Abstract-chosen.coffeeã®342è¡ç®ã§ãå ¥åã«ã¯ãcomboboxããšãlistboxãã®2ã€ã®åœ¹å²ãå²ãåœãŠãããŠããŸãã
<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
ç§ã¯ãã®JSFiddleãJAWS2019ã§ãã¹ãããŠããŸããããäžäžã®ç¢å°ããŒã䜿çšããŠãªãã·ã§ã³ãããã²ãŒããããšãå°ãç°ãªãããšãçºçããŸããã
Google Chrome 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çªç®ã®ãªãã·ã§ã³ã«å°éãããŸã§ãæŒãäžãããšãã«åŒ·èª¿è¡šç€ºããããªãã·ã§ã³ãèªã¿åããŸããã ã ããã¯ã¹ã¯å°ãèªåã¹ã¯ããŒã«ããŠã¢ã³ãã£ã°ã¢ããŒããŒãã匷調衚瀺ãããªãã·ã§ã³ãèªã¿ãŸãã
IE 11.0.9600.19463ã®å ŽåïŒç¢å°ããŒã䜿çšããŠããã²ãŒããããšãçŸåšåŒ·èª¿è¡šç€ºãããŠãããªãã·ã§ã³ãæ£ããäžäžã«ç§»åããŠããããã«èŠããŸãã ãªãããã®ã¬ã³ããªã³ã°ã¯å¿ èŠãããŸããã
ä»ã®èª°ãããããçµéšãããã©ããç¥ãããã§ãã @ obert01 @woenlee
ããã«ã¡ã¯ãããªãã®ä»äºã«æè¬ããŸãã
æ®å¿µãªãããããã¯æ£ããæ©èœããŸããã 䜿çšãããã©ãŠã¶ãã¹ã¯ãªãŒã³ãªãŒããŒã®æ©èœã«ãã£ãŠåäœãå€åããããã説æããã®ã¯éåžžã«å°é£ã§ãã
äžéšã®ariaããããã£ãååšããªãããæŽæ°ãããŠããªããšæããŸãã ããã§ç§ãééããäžè¬çãªåé¡ïŒ
è¯ãç¹ïŒ
æ®å¿µãªãããARIAãJavaScriptãWebå šè¬ã«é¢ããŠã¯å€ãã®ããšãç¥ããŸããã ARIAããããã£ã®æ倧æ°ãé©åã«èšå®ããã³æŽæ°ãããŠããããšã確èªããããšããå§ãããŸãã
ã¹ã¯ãªãŒã³ãªãŒããŒãšå®å
šã«çžäºäœçšããJQueryãã©ã°ã€ã³ã®ãã¢ãšã³ãŒãã以äžã«ç€ºããŸãã
https://a11y.nicolas-hoffmann.net/autocomplete-list/
ãã以äžã圹ã«ç«ãŠãç³ãèš³ããããŸããã
ããªãã®äœåã®æ°ãããã¢ãæçš¿ããããšãèºèºããªãã§ãã ããã ç§ã¯ããªãã®ããã«ãã¹ãããŠããããã§ãã
æãåèã«ãªãã³ã¡ã³ã
ããã§Harvestã®é¡§å®¢ã«æ¯æããããå éšã§ã¢ã¯ã»ã¹ã§ããããã«ããããã®ãã¹ããããã«ééããŸããã ã¢ã¯ã»ã·ããªãã£ã¯å¿ é ã§ãããããã«å¯ŸåŠããªãå ŽåãHarvestã®ã¡ã³ãããå°ãªããšãããã«ãµããŒãã瀺ããªãå Žåã¯ãHarvestãã移åããŸãã