My Formsãšãããµã€ããäœæããŸãã
ãã®ããã°ã«ã¯æäœæäžåã¯æŽæ°ãããšããé ãåªåç®æšãããã®ã§ãããããæè¿ã¯èšäºãã¢ããã§ããŠããŸãããäžå¿èšäºãäœæããŠããåªåã¯ããŠããŠãäŸãã°Rustã®æææš©ã«ã€ããŠã®èšäºãæžããŠããã®ã§ãããã¢ããã§ãããããªç²ŸåºŠã§ã¯ãªãã®ã§ãŸã äžæžãã®ç¶æ ã§ãã
ä»åã¯èŠãçŽãã®è¿æ³å ±åçãªèšäºã§ãã
My Formsãšãããµã€ããäœæããŸããããããŒã®ãã©ãŒã ã沢山äœæãããªã¹ãã¢ããããŠãããµã€ãã§ãã
å€åä»å¹Žã®2æãããã«äžæŠãµã€ãã¯å®æãããã§ãããèå¿ã®ãã©ãŒã ã¯äžã€ããäœããŠããŸããã§ãããããã§ãGWãå©çšããŠãã©ãŒã ãããã€ãè¿œå ãããããã¶ã€ã³ãæŽãããããŠããŸããã
ä»åã¯ãã®ãµã€ãã«ã€ããŠã®ç°¡åãªèª¬æãããŸãã
ç®ç
倧ããªç®çãšããŠã¯ãUI/UXãã¢ã¯ã»ã·ããªãã£ã«é¢ããåãåºäžãããããšã§ããããã³ããšã³ãã®æè¡ã«è§ŠããŠãã颚ãè£ ã£ãŠãããªããããããã«ã€ããŠã¯èŠãŠã¿ãªããµããããŠããã®ã§ã¡ãããšå匷ããããšã«ããŸããã
ãªããã©ãŒã ãé¡æã«ããããšããã°ãHTMLã«ãããŠãæããäœæããã®ãäžçªé£ããèŠçŽ ããã©ãŒã ã§ããããã§ãããã©ãŒã ãèªç±èªåšã«æãããšãã§ããã°ã倧æµã®UIã®äœæã«ãããŠãåæ Œç¹ããšãããšãã§ãããšäºæž¬ããŸããã
ãããŠãã£ãšçŽ°ããèšããšããã©ãŒã ã®äœæãéããŠä»¥äžã®èŠçŽ ã«ã€ããŠã¬ãã«ã¢ããã§ãããšèããŠããŸãã
- â UI/UX
- â HTML
- â Webã¢ã¯ã»ã·ããªãã£(WAI-ARIA)
- â React Hooksãåçš®ã©ã€ãã©ãªãŒã®äœ¿ãæ¹
- â ãã¹ãã³ãŒãã®æžãæ¹(React Testing Library)
- â æ¯æŽæè¡ã®äœ¿ãæ¹(NVDAãªã©)
ç¹ã«åãå ¥ããŠããã®ããã¹ãã³ãŒãã®äœæã§ãïŒãã¹ãã³ãŒãã¯ãã¡ããåãã©ãŒã ã«ãããŠãèããããå šãŠã®ã±ãŒã¹ïŒãŠãŒã¶ãŒæäœïŒã«å¯ŸããŠãã¹ãã±ãŒã¹ãäœæããŠããŸãããã«ãªã¯ãšã¹ããæããæã«GitHub Actionsãèµ°ãããã¹ããéããããã§ãã¯ããŸãããã¹ãã«ã€ããŠã¯åŸè¿°ããŸãã
ãŸããWAI-ARIAã«ã€ããŠãå匷ãå§ããŸãããWAI-ARIAã¯å匷ããªããšãã¡ã ãã©åŸåãã«ããã¡ïŒèªåã ãïŒïŒã ãšæããã§ããããã©ãŒã ã®äœæã«ã¯ç¹ã«çµ¡ãã§ããèŠçŽ ã§ããã匷å¶çã«å匷ããããšã«ãªããŸãã
ãã¹ã
æåæ°ã皌ããããå®éã«ã©ã®ãããªãã¹ãã³ãŒããæžããŠããããè¿°ã¹ãããšæããŸãã
Form2ãé¡æã«ããŸããååå€æãã©ãŒã ãšé¢ããŠããéããããã¹ãããã¯ã¹ã«å ¥åããå°æåã®ã¢ã«ãã¡ãããã倧æåã«ããŠè¡šç€ºãããšãããã®ã§ãã
ãã©ãŒã ã®ç¹åŸŽ
ãŸããForm2ã®ä»æ§ã«ã€ããŠãã£ãšèª¬æããŸããForm2ã®ããŒãã¯ãå¿ é é ç®ãåããŠããªãæãã©ã®ããã«ããŠããããŠãŒã¶ãŒã«äŒããããã§ãã
å ¥åããé ç®ã¯ããååãã²ãšã€ã ãã§ãããã®é ç®ã¯å ¥åãå¿ é ã§ãã®ã§ â» å¿ é ãšèšè¿°ããå ¥åãä¿ããŠããŸãã
ãŸããå¿ é é ç®ãå ¥åãããŸã§ã¯ãã¿ã³ã¯æŒããªãç¶æ ïŒdisabledïŒã«ãªã£ãŠããŸããããã¯ããã§è¯ãUIãªã®ããšããåé¡ã¯ãããŸãããForm2ã®ããŒããå®çŸããããä»åã¯ããããæ段ããšã£ãããšããããšã§ãã
ååãå ¥åãããã°éä¿¡ãã¿ã³ã¯ã¯ãªãã¯å¯èœãªç¶æ ã«ãªããŸãããªããã©ã®ãããªæåïŒæ¥æ¬èªãèšå·ãªã©ïŒã§ãå ¥åå¯èœãªç¶æ ã«ãªã£ãŠããŸããæ¬æ¥ã¯æ£èŠè¡šçŸã«ãããã¹ããšããã§ãããä»åã®ããŒããšã¯çŽæ¥é¢ä¿ãªãã®ã§çããŠããŸãïŒãã ãã¹ããŒã¹ã®ã¿ããšããå ¥åã¯åŒŸããŠããŸãïŒã
ããŠãäŸã§ã¯takashi
ãšããæåãå
¥åããŸãããããããåé€ããŠã¿ãŸãããããšèµ€ãæåã§ãšã©ãŒã¡ãã»ãŒãžã衚瀺ããããã¿ã³ããŸãdisabledã«ãªããŸãããã©ãŒã ãéä¿¡ã§ããªãç¶æ
ã«ãªã£ãããšã«å¯ŸããŠããšã©ãŒã¡ãã»ãŒãžã§çç±ãäŒããŠããŸãã
ãã®ãšã©ãŒã¡ãã»ãŒãžã¯ãonChange
ã䜿çšãããã¹ãããã¯ã¹ã®æåæ°ãã«ãŠã³ãããŠè¡šç€º/é衚瀺ãåãæ¿ããŠããŸãããã ãååã¬ã³ããªã³ã°æã«ãããªããšã©ãŒã¡ãã»ãŒãžã衚瀺ããããšãããããªãã®ã§ããããé¿ãã工倫ãããŠããŸãã
ãªãããããã§ãã©ãŒã ã®éä¿¡ã«æåãããšãå°æåã®ã¢ã«ãã¡ãããã倧æåã«çœ®ãæãã£ãæååã衚瀺ãããŸãã
以äžãForm2ã®ä»æ§ã§ãã
ãã¹ãã±ãŒã¹
ãã®ãã©ãŒã ã«ã€ããŠããã¹ãã³ãŒãã¯ã©ã®ããã«æžãã°ããã§ããããããŸãã以äžã®3ã€ã«å€§ããåé¡ããããšã«ããŸããã
- ååã¬ã³ããªã³ã°æã«æ£ããç¶æ ã«ãªã£ãŠããã
- ãã©ãŒã ã«ååãèšå ¥/åé€ããæãåèŠçŽ ãæ£ããç¶æ ã«å€åããã
- ãã©ãŒã ãéä¿¡ããããšã§ãæ£ããçµæãåŸãããã
ããããããããã®ã±ãŒã¹ã«ã€ããŠçŽ°ååããŸãã1ã€ç®ã®ãååã¬ã³ããªã³ã°æã«æ£ããç¶æ ã«ãªã£ãŠããããã§ããã以äžã®ããã«èããŸããã
- 1-1 ååã¬ã³ããªã³ã°æã«éä¿¡ãã¿ã³ãdisabledã«ãªã£ãŠããã
- 1-2 ååã¬ã³ããªã³ã°æã«ãšã©ãŒã¡ãã»ãŒãžã衚瀺ãããŠããªãã
- 1-3 ååã¬ã³ããªã³ã°æã«å€æçµæã衚瀺ããããšãªã¢ã«äœã衚瀺ãããŠããªãã
2ã€ç®ã®ããã©ãŒã ã«ååãèšå ¥/åé€ããæãåèŠçŽ ãæ£ããç¶æ ã«å€åããããã«ã€ããŠã¯ã
- 2-1 ãã©ãŒã ã«ååãå ¥åããæã«éä¿¡ãã¿ã³ã®disabledã解é€ãããã
- 2-2 ãã©ãŒã ã«ååãå ¥åãåé€ããæã«ãšã©ãŒã¡ãã»ãŒãžã衚瀺ãããã
- 2-3 ãã©ãŒã ã«ååãå ¥åãåé€ããæã«éä¿¡ãã¿ã³ãdisabledã«ãªãã
ãšãã颚ã«ããŸããããã®ãããªæåãå®çŸãããã®ãããã©ãŒã ãäœæããäžã§äžçªé£ãããšããã§ãããŠãŒã¶ãŒæäœã«åãããŠstateã®å€ãçãéãã«å€åãããããã¹ããéããŠãã§ãã¯ããŸãã
æåŸãããã©ãŒã ãéä¿¡ããããšã§ãæ£ããçµæãåŸãããããã«ã€ããŠã¯ã
- 3-1 ãã©ãŒã ãéä¿¡ããæã«å€§æåã«å€æãããååã衚瀺ãããã
ãšãã颚ã«ããŸããã
åèã«ããŠããæ¬
æè¿ã¯ãWebããã³ããšã³ãã«ãããå®è·µçã§çºå±çãªå 容ã®æ¬ãå å®ããŠãããæ¬ãèªãã®ããšãŠã楜ããã§ããä»åã®ãµã€ããäœæããã«ãããåèã«ããŠããæ¬ã玹ä»ããŸãã
Webã¢ããªã±ãŒã·ã§ã³ã¢ã¯ã»ã·ããªã㣠ââä»æ¥ããå§ããçŸå Žããã®æ¹å
ã¢ã¯ã»ã·ããªãã£ãé¡æã©çãäžã«ããæ¬ã¯å°ãªãããããã£ãæžç±ãçºå£²ãããããšããšãŠãå¬ããã§ãããŸã ååããèªããŠããŸããããWAI-ARIAãã¢ã¯ã»ã·ããªãã£ã®èãæ¹ã«ã€ããŠããããŸãã ã£ãèªåã®ç¥èãæ¡å ãããŠããã®ãåãããŸãã
åãªãç¥èã®çŸ åã§ã¯ãªããäŸãã°ãè¯ããªãäŸããæããã®åé¡ç¹ãæ確ã«ããŠãããæçµçã«ã¯å ·äœçãªæ¹åçãæ瀺ããŠãããªã©ããšãŠãå®è·µçãªå 容ã«ãªã£ãŠããŸãã
ããã³ããšã³ãéçºã®ããã®ãã¹ãå ¥é ä»ããã§ãç¥ã£ãŠããããèªåãã¹ãæŠç¥ã®å¿ é ç¥è
Testing LibraryãStorybookãPlaywrightãçšããŠãããã³ããšã³ãã®èªåãã¹ããã©ã®ããã«èãå®è¡ããŠãããã瀺ããŠããæ¬ã§ããããã³ããšã³ãã®ãã¹ãã¯ãäœãšãªããã£ãŠããæãã匷ãã£ãã§ããããã¯ã1åã®æ¬ã«ãŸãšãŸã£ãŠãããšäœç³»çã«åŠç¿åºæ¥ãŠããã§ããã
HTML解äœæ°æž
æ¬ã®ããŒãã¯HTMLã§ãããHTMLãšã¯ãã¯ãåã£ãŠãåãé¢ããªããã»ãã³ãã£ã¯ã¹ããã¢ã¯ã»ã·ããªãã£ããWAI-ARIAããšãã£ãèŠçŽ ã«ã€ããŠè©³ããèšèŒãããŠããŸãã端ãã端ãŸã§æèšããŠç解ãããããªæ¬ã§ã¯ãããŸããããèŸæžçã«å©çšããããšãå€ãã§ãã
æåŸã«
ãã©ãŒã ã®äžã§ãããã¯ãããããããã£ãšããããã°è¯ãããšãã£ãæãããã°æ¯éissueãäœæããŠããããã°å¬ããã§ãããã¡ãããã©ãŒã¯ããŠãã«ãªã¯ãšã¹ããæããŠãããããªããªãå¬ããã§ãã
æŽæ°å±¥æŽ
- 2023幎5æ11æ¥ : èŠåºããä¿®æ£ããã®ä»èª€åè±åãä¿®æ£ã