ðïž Design MaterialsïŒã¢ã¯ã»ã·ããªãã£ãããã¶ã€ã³ãåŠãŒããã¢ã¯ã»ã·ãã«ãªãã©ãŒã ãäœæããããã®ãã¹ããã©ã¯ãã£ã¹
Webã¢ã¯ã»ã·ããªãã£ãšã¯ãé害è ãªã©å¿èº«ã®æ©èœã«å¶çŽã®ãã人ã§ããããŸããŸãªæ¡ä»¶ã«é¢ãããããŠã§ãã§æäŸãããŠããæ å ±ã«ã¢ã¯ã»ã¹ãå©çšã§ããããšãæå³ããŸãã
ããããçŸåšã®ã€ã³ã¿ãŒãããã®å€ãã¯ããŸã é害ãæã€ãŠãŒã¶ãŒã«å¯Ÿå¿ããããã«ãã¶ã€ã³ãããŠããŸããã ããšãã°ãDeque Systemsã®èª¿æ»ã«ãããšãèŠèŠé害ãæã€äººã ã¯Webãµã€ãã®70ïŒ ã«ã¢ã¯ã»ã¹ã§ããŸããã§ããã
ã¢ã¯ã»ã¹ã§ããªããã©ãŒã ã¯ãåã«æãããããªãã ãã§ãªããããžãã¹ã®åŠšãã«ãªããŸããéã«ã¢ã¯ã»ã·ããªãã£ã念é ã«çœ®ããŠãã¶ã€ã³ããã°ã誰ããããªãã®Webãµã€ãããå¿ èŠãªãã®ãååŸããããšãã§ããŠãã€ã³ã¯ã«ãŒã·ããªãã¶ã€ã³ã§ããã ãã§ã¯ãªããããžãã¹ã®æé·ã«ã圹ç«ã€ã®ã§ãã
幞ããHTMLã䜿çšããŠã¢ã¯ã»ã·ãã«ãªãã©ãŒã ãäœæããã®ã¯éåžžã«ç°¡åã§ãã ãããã®ãã¹ããã©ã¯ãã£ã¹ã䜿çšãããšãèŠèŠé害ãèªç¥é害ã®ãã人ãããã³ããŒããŒãã䜿çšããŠWebãããã²ãŒãããŠãã人ããã©ãŒã ã«ã¢ã¯ã»ã¹ã§ããããã«ãªããŸãã
ããŒããŒãããã²ãŒã·ã§ã³ããµããŒããã
èŠèŠé害ãŸãã¯éåæ©èœã«é害ã®ãã人ã¯ãããŒããŒãã䜿çšããŠãªã³ã©ã€ã³ãã©ãŒã ãããã²ãŒãããŸãã
ã¿ãããŒã䜿çšãããšããŠãŒã¶ãŒã¯ãªã³ã¯ãšãã©ãŒã ã³ã³ãããŒã«éã移åã§ããŸããäžéšã®äººã ã¯ãèœåã«é¢ä¿ãªããããŠã¹ã䜿çšãããããæã§ç°¡åã§é«éã§ããããããã®æ¹æ³ã§ããã²ãŒãããããšã奜ã¿ãŸãã
ã»ãã³ãã£ãã¯HTMLãã©ãŒã èŠçŽ ã䜿çšãã
ã»ãã³ãã£ãã¯èŠçŽ ã¯ã<form>ã<button>ãªã©ãååããã®ç®çãæ確ã«èå¥ããã³ãŒãã§ãã <div>ãªã©ã®éã»ãã³ãã£ãã¯èŠçŽ ã¯ãã¿ã°å
ã«ã©ã®ãããªçš®é¡ã®ã³ã³ãã³ããå«ãŸããŠãããã瀺ããŸããã
ã»ãã³ãã£ãã¯HTMLèŠçŽ ã䜿çšããŠWebãµã€ããã³ãŒãã£ã³ã°ãããšãã¿ãããŒããã©ãŒã ãã£ãŒã«ãéãèªåçã«ç§»åããŸãã
ãã©ãŒã«ã¹ã¹ã¿ã€ãªã³ã°ã䜿çšãã
ããŒããŒãããã²ãŒã¿ãŒãã©ã®ãã£ãŒã«ããéžæãããŠããããèªèã§ããããã«ããã©ãŒã ã«åŒ·åãªèŠèŠçæããããå¿ èŠã§ããã¿ãããŒã§ãã£ãŒã«ããéžæãããšãã¯ãå¯Ÿç §çãªè²ã®ããã¯ã¹ã§å²ãå¿ èŠããããŸãã
ã€ã³ã¿ãŒãããã®ãã¢ã¯ã»ã·ããªãã£ãã€ãã«ãã§ããã¯ãŒã«ãã¯ã€ããŠã§ãã³ã³ãœãŒã·ã¢ã ïŒW3CïŒã«ãããšã14ãã€ã³ãæªæºã®ããã¹ãã®ã³ã³ãã©ã¹ãæ¯ã¯å°ãªããšã4.5察1ã§ããå¿ èŠããããŸãã
CSSã¹ã¿ã€ã«ã·ãŒãã«è¿œå ã§ãããã©ãŒã«ã¹ã»ã¹ã¿ã€ãªã³ã°ã»ã¹ããããã®äŸã次ã«ç€ºããŸãã
&:focus {
outline: 3px solid #2E1BA6;
border-color: transparent;
}
ãã©ãŒã«ã¹ã¹ã¿ã€ãªã³ã°ã¯ããã¶ã€ã³ãç ç²ã«ããå¿ èŠããããšããæå³ã§ã¯ãããŸããã ååãªã³ã³ãã©ã¹ããããéãããã©ã³ãã®è²ã«åãããŠããã¯ã¹ã®è²ãã«ã¹ã¿ãã€ãºã§ããŸãã ããŒããŒããšããŠã¹ã®ããã²ãŒã·ã§ã³ã«ããŸããŸãªèŠèŠçæããããèšå®ããããšãã§ããŸããSpotifyã¯ãã®ã¢ãããŒããæ¡çšããŸããã ããã§ãã«ãŒãœã«ã§ãã®è¿ãã«ã«ãŒãœã«ãåããããšãå³äžã®ããŠã³ããŒããã¿ã³ãç·è²ã«å€ãããŸãã
TabããŒã§åããã¿ã³ãéžæãããšããã®åšãã«ãã©ã€ãããã¯ã¹ã衚瀺ãããŸãã
ãã¬ãŒã¹ãã«ããŒããã¹ãã§ã¯ãªããæ確ãªããžã¥ã¢ã«ã©ãã«ã䜿çšãã
ãã¬ãŒã¹ãã«ããŒã»ããã¹ãïŒãã©ãŒã ãã£ãŒã«ãã®æçãªã³ããŒïŒã¯ããŠãŒã¶ãŒã«å€ãã®åé¡ããããããŸãã
ããã§ã¯ããã©ãŒã ã»ãã£ãŒã«ãã®ã¿ã€ãïŒé»è©±çªå·ïŒãšãã©ãŒãããã®æé ïŒXXX-XXX-XXXXïŒã®äž¡æ¹ããã¬ãŒã¹ãã«ããŒããã¹ãã«å«ãŸããŠããŸããããã¯ãã€ã³ã¿ãŒãããã§èŠãããã¢ã¯ã»ã·ããªãã£ã®å€±æã®äŸã§ãã
ããã¹ãã®è²ãšãã©ãŒã ãã£ãŒã«ãã®èæ¯ã®ã³ã³ãã©ã¹ããäœããããèŠèŠé害è ã¯èªã¿ã«ããããšããããããŸããããã«ãã¹ã¯ãªãŒã³ãªãŒããŒã¯ããã¬ãŒã¹ãã«ããŒããã¹ããæ€åºããªãããšããããããŸãã
ãã®ãã¶ã€ã³ã§ã¯ããŠãŒã¶ãŒããã£ãŒã«ããéžæãããšããã¹ããæ¶ãããããèšæ¶é害ã®ããæ¹ã ã«ãè² æ ãããããŸãããããã®äžæçãªæ瀺ã¯ãã»ãŒãã¹ãŠã®äººã«ãšã£ãŠèç«ããããã®ã§ãã ç¹ã«ãªã³ã©ã€ã³äžã®ãã«ãã¿ã¹ã¯ã«éäžããŠããå Žåã¯ãããã¹ããå¿ããã¡ã§ãã
代ããã«ããã©ãŒã ãã£ãŒã«ãã®äžã«æ確ãªèŠèŠçã©ãã«ãå«ããŸãã åã®äŸãç¶ããŠããã©ãŒã ã®äžã«ãé»è©±çªå·ããæ¿å ¥ããŸãã
ããã«ã¢ã¯ã»ã·ããªãã£ã«ãããå Žåã¯ãã£ãŒã«ãã®äžã«é»è©±çªå·ã®ãã©ãŒãããã®è©³çŽ°ãå«ããŸãã
ã©ãã«ã¯æ確ã§ããã©ãŒãããæé ã¯ãã£ãŒã«ãã®å€ã«ãããŸãã
ãã¬ãŒã¹ãã«ããŒã»ããã¹ãã䜿çšããŠããŠãŒã¶ãŒã«ããå€ãã®ã³ã³ããã¹ãããã³ããæäŸããããšã¯åé¡ãããŸããããã©ãŒã ãžã®å ¥åã«äžå¯æ¬ ãªæ å ±ã«ã€ããŠã¯ããã¬ãŒã¹ãã«ããŒããã¹ããé¿ããã®ãæåã§ãã
远å ã®ãªãœãŒã¹ïŒœïŒ
ã¹ã¯ãªãŒã³ãªãŒããŒçšã®ããã°ã©ã ã©ãã«ãã³ãŒãã£ã³ã°ãã
ã¹ã¯ãªãŒã³ãªãŒããŒã®ãŠãŒã¶ãŒããã©ãŒã ã«ã¢ã¯ã»ã¹ã§ããããã«ããã«ã¯ãã©ãã«ã¿ã°ïŒ<label>ããã³</ label>ïŒãå¿ èŠã§ãã
æ¯æŽæè¡ã¯ãé¢é£ãããã©ãŒã å ¥åã«å°éãããšããã®äžã®ããã¹ããã¢ããŠã³ã¹ããŸãã ã©ãã«ã¿ã°ã¯ãæ確ãªèŠèŠçã©ãã«ãäœæããŸãã
<b>Full Name</b>
<input type="text" name="name" id="full-name">
次ã®ããã«ã¬ã³ããªã³ã°ãããŸãã
ãã©ãŒã ã«é©åãªã©ãã«ãä»ããããã«èŠããŸããããã¹ãŠã¹ã¿ã€ã«ã§ãããå®äœã¯ãããŸããã ã¹ã¯ãªãŒã³ãªãŒããŒã¯ãããã¹ãã©ãã«ããã©ãŒã ãã£ãŒã«ãã«é¢é£ä»ããããšãã§ããªããªããŸãã <label>ã¿ã°ã䜿çšããŠ2ã€ãæ¥ç¶ããŸãã
ã³ãŒãå ã§<label>ã<input>ã«æ¥ç¶ããæ¹æ³ã¯2ã€ãããŸãã
ãªãã·ã§ã³1ïŒã©ãã«ã®for = ""å±æ§ãå ¥åã®id = ""å±æ§ãšäžèŽãããŸãã
<label for="full-name">Full Name</label>
<input type="text" name="name" id="full-name">
ãªãã·ã§ã³2ïŒå ¥åã<label>ã¿ã°å ã«ã³ãŒãã£ã³ã°ããŸãã
<label>
Full Name
<input type="text" name="full-name">
</label>
ã©ã¡ãã®æ¹æ³ã§ããæ確ãªèŠèŠçã©ãã«ãä»ããã¢ã¯ã»ã¹å¯èœãªãã©ãŒã ãã£ãŒã«ãã衚瀺ãããŸãã
远å ã®ãªãœãŒã¹ïŒœïŒ
ãã£ãŒã«ãã»ãããšå¡äŸã䜿çšããã°ã«ãŒãé¢é£ã®å ¥å
å€è¢éžæåŒã®è³ªåã«è«çæ§é ãäžãããšãã¹ã¯ãªãŒã³ãªãŒããŒããã©ãŒã ãæ確ã«è§£éããã®ã«åœ¹ç«ã¡ãŸãã ããã§<fieldset>ã¿ã°ãš<legend>ã¿ã°ã圹ç«ã¡ãŸããç¹ã«ããã§ãã¯ããã¯ã¹ãã©ãžãªãã¿ã³ã«é¢ãã質åããããŸãã
<fieldset>ã¿ã°ã¯ãå ¥åã®ã°ã«ãŒããäžç·ã«å±ããããšããã©ãŒã ã«éç¥ãã<legend>ã¿ã°ã¯ãå ¥åã®ã°ã«ãŒãã®ã©ãã«ãšããŠæ©èœããŸãã ã³ãŒãã«ãããã®èŠçŽ ãå«ãŸããŠããªãå Žåãã¹ã¯ãªãŒã³ãªãŒããŒã䜿çšããŠãããŠãŒã¶ãŒã«ã¯ãåãªãã·ã§ã³ã®ã©ãã«ãèãããŸãããåçããŠãã質åã¯èãããŸããã
é©åãª<fieldset>ã¿ã°ãš<legend>ã¿ã°ãæã€ã³ãŒãã¯æ¬¡ã®ããã«ãªããŸãã
<fieldset>
<legend>Are you a cat person or a dog person?</legend>
<div>
<input type="radio" name="animal" value="cat-person" id="cat-person">
<label for="cat-person">cat person</label>
</div>
<div>
<input type="radio" name="animal" value="dog-person" id="dog-person">
<label for="dog-person">dog person</label>
</div>
<div>
<input type="radio" name="animal" value="both" id="both">
<label for="both">both</label>
</div>
<div>
<input type="radio" name="animal" value="neither" id="neither">
<label for="neither">neither</label>
</div>
</fieldset>
ã³ãŒãã«<legend>ã¿ã°ããªããšãã¹ã¯ãªãŒã³ãªãŒããŒã¯ãç«ã®äººãç¬ã®äººãäž¡æ¹ã®åå ¥åã®ã©ãã«ã®ã¿ãèªã¿åããã©ã¡ããèªã¿äžããŸããã ãããã質åã¯äœã§ãããïŒ ããµã³ãã«ãå±¥ããéŽäžãå±¥ãå¯èœæ§ãæãé«ãã®ã¯èª°ã§ããïŒã
ãã®åé¡ã¯ããã¯ãããŸãã¯ãããããã®è³ªåã§ç¹ã«åé¡ã«ãªããŸãã ãããã®äžè¬çãªåçãèããåŸãèŠèŠé害ã®ãããŠãŒã¶ãŒã¯ãäœãæ±ããããŠããã®ããæšæž¬ããããšããã§ããŸããã
ã³ãŒãã§<fieldset>ã¿ã°ãš<legend>ã¿ã°ã䜿çšããŠã質åãšèããããå¿çããã¹ãŠã®ãŠãŒã¶ãŒã«æ確ã«ãªãããã«ããŸãã
远å ã®ãªãœãŒã¹ïŒœïŒ
ARIAã©ãã«ã䜿çšããŠã¹ã¯ãªãŒã³ãªãŒããŒã«æ瀺ãäžãã
ARIAïŒã¢ã¯ã»ã¹å¯èœãªãªããã»ã€ã³ã¿ãŒãããã»ã¢ããªã±ãŒã·ã§ã³ïŒã¯ãã¹ã¯ãªãŒã³ãªãŒããŒã®èª¬æãšæ å ±ãå«ãé¢é£ããHTMLå±æ§ã®ã»ããã§ãã aria-labelãaria-labeledbyãªã©ã®ãããã®å±æ§ã¯ãWebããŒãžã«ã¯äœã衚瀺ãããŸããã WebAIMã«ãããšãARIAã¯ããã€ãã£ãHTMLãååã«æ確ã§ãªãå Žåã«ã®ã¿äœ¿çšããå¿ èŠããããŸãã
ARIAå±æ§ã¯ãã¹ã¯ãªãŒã³ãªãŒããŒã«äŸåããŠãã人ããã©ãŒã ãç解ããããã«èãå¿ èŠã®ããæ å ±ãæäŸããå Žåã«äžå¯æ¬ ã§ãã
ããšãã°ããæ€çŽ¢ããšãããã¿ã³ã®ãããã£ãŒã«ãããããšããŸãã
ãã®ãã£ãŒã«ãã¯èŠèŠçã«æ確ã§ãããã¹ã¯ãªãŒã³ãªãŒããŒã§ã¢ã¯ã»ã¹ã§ããããã«ããã«ã¯ãARIAå±æ§ãå¿ èŠã§ãã
<input type="text" name="search" aria-label="Search">
<button type="submit">Search</button>
ã»ãšãã©ã®HTMLãšåæ§ã«ããããå®çŸããæ¹æ³ã¯è€æ°ãããŸãã ãã®W3Cãã¥ãŒããªã¢ã«ã¯ãARIAå±æ§ãšãã€ãã£ãHTMLã®äž¡æ¹ã䜿çšããŠã¢ã¯ã»ã·ãã«ãªã©ããªã³ã°ã«ã¢ãããŒãããããã€ãã®æ¹æ³ã瀺ããŠããŸãã
ARIAã䜿çšããŠãæ¥ä»ã®æžåŒèšå®ãªã©ã®æ瀺ãæäŸããããšãã§ããŸãã
<label for="DOB">Date of birth:</label>
<input type="text" name="birthdate" id="DOB" aria-describedby="DOB-help">
<span id="DOB-help">MM/DD/YYYY</span>
ã¬ã³ããªã³ã°ã¯æ¬¡ã®ãšããã§ãã
å±æ§aria-describebyã¯ãäžèŽããid =â DOB-helpâå ¥åã説æãšããŠäœ¿çšããããã«ã¹ã¯ãªãŒã³ãªãŒããŒã«æ瀺ããŸãã 次ã«ãã¹ã¯ãªãŒã³ãªãŒããŒã¯ãæå®ãããIDã«é¢é£ä»ããããŠããå€ãMM / DD / YYYYããã¢ããŠã³ã¹ããŸãã
ARIAå±æ§ã¯ãããã§èª¬æãããã®ãããè€éã§ãã 詳现ã«ã€ããŠã¯ã以äžã®è¿œå ãªãœãŒã¹ã確èªããããšããå§ãããŸãã
远å ã®ãªãœãŒã¹ïŒœïŒ
ã¢ã¯ã»ã·ãã«ãªãã©ãŒã ã¯ããºã«ã®äžéš
ããŸãã«ãé »ç¹ã«ãã¢ã¯ã»ã·ããªãã£ã¯ãŸã ãŠã§ããã¶ã€ã³ã§åŸä»ãã§ãã å€ãã®äººã ã¯ãæ¯æŽæè¡ã䜿ã£ãŠããäŸç¶ãšããŠWebãããã²ãŒãããã®ã«èç«ãããçµéšãããŠããŸãã 幞ããªããšã«ããã®èšäºãèªãã§ãããªãããããããã£ãšäžæããããããšæãã§ãããã Googleã®LighthouseãŸãã¯å¥ã®ããŒã«ãè©ŠããŠããŠã§ããµã€ãã®ã¢ã¯ã»ã·ããªãã£ãè©äŸ¡ããæ¹åã®æ©äŒãç¹å®ããŠãã ããã
ç§ãè²ã
å匷äžãªã®ã§ãçããŸã®ãæèŠã»ãææ³ããèãããã ããã
ãèªã¿é ããŸããŠãããããšãããããŸããã
ã¡ã«ãã«ã³ãæ ç¹ã«ãããã¯ããã¶ã€ããŒãšããŠåããŠããŸãã äž»ã«ããžã¿ã«ã»ãããã¯ãã®å¶äœã«æºãã£ãŠããŸãã
ãã®èšäºãæ°ã«å ¥ã£ãããµããŒããããŠã¿ãŸãããïŒ