2024.10.10 ã¢ã¯ã»ã·ããªãã£LTä¼ #2 with Mix Leap Study ã§ã®çºè¡¨ã¹ã©ã¤ãã§ãã
2024.10.10 ã¢ã¯ã»ã·ããªãã£LTä¼ #2 with Mix Leap Study ã§ã®çºè¡¨ã¹ã©ã¤ãã§ãã
ã¢ã¯ã»ã·ããªãã£ãèæ ®ãããã¼ã¯ã¢ãããããçµé¨ãããæ¹ã¯ãaria-labelãaria-labelledbyã«ã¤ãã¦ãåãã§ãããããããã¯ãè¦ç´ ã«ã©ãã«ä»ãããããã®WAI-ARIAããããã£ã§ããå¤ãã®å ´åãè¦ç´ ã®ã¢ã¯ã»ã·ãã«ãªåå (accessible name) ã決ããããã«ä½¿ããã¾ãã aria-labelã¯ã©ãã«ãç´æ¥æååã¨ãã¦æå®ããããããã£ã§ãaria-labelledbyã¯IDãéãã¦ä»ã®è¦ç´ ãã©ãã«ã¨ãã¦æå®ããããããã£ã§ãããã®ä½¿ãåãã«ã¤ãã¦ã¯ãä»æ§æ¸[1]ã§ä»¥ä¸ã®ããã«èª¬æããã¦ãã¾ããã¤ã¾ããå¯è½ãªå ´åã¯aria-labelledbyã«å¯ããã¹ãã ã¨ãããã¨ã§ãã If the label text is available in the DOM (i.e. typically visible text content), authors SHOU
SPA ã«ãããã¢ã¯ã»ã·ããªãã£èª²é¡ã«ã¤ã㦠ã·ã³ã°ã«ãã¼ã¸ã¢ããªã±ã¼ã·ã§ã³ï¼SPAï¼ã¯ã1ã¤ã®HTMLãã¡ã¤ã«ã«å¯¾ãã¦JavaScriptã¨Web APIãæ´»ç¨ãã¦ãã¦ã¼ã¶ã¼ã«ç´ æ©ããã¼ã¸åãæ¿ãã®ä½é¨ãæä¾ããã¦ã§ãã¢ããªã±ã¼ã·ã§ã³ã®ä¸å½¢æ ã§ãã ããããSPAã«ã¯ã¢ã¯ã»ã·ããªãã£ã®èª²é¡ãããã¾ããä¾ãã°ãè¦è¦é害ã®ããã¦ã¼ã¶ã¼ã使ãã¹ã¯ãªã¼ã³ãªã¼ãã¼ã¨ããæ¯æ´æè¡ã§ã¯ãã¼ã¸ãé·ç§»ãããã¨ãèªèã§ããªããã¨ãããã¾ããããã¯ãJavaScriptã使ã£ã¦ãã¼ã¸ãåãæ¿ããéã«çºçããåé¡ã§ãã å ·ä½çã«ã¯ãã¦ã¼ã¶ã¼ããããã¼ã¸ããå¥ã®ãã¼ã¸ã¸ç§»åããéãã¹ã¯ãªã¼ã³ãªã¼ãã¼ãæ°ãããã¼ã¸ã«ç§»åãããã¨ãèªèããªããã¨ãããã¾ãã ãã®åé¡ã解決ããããã«ãJavaScriptã¨WAI-ARIAã¨ããæè¡ã使ã£ã¦ãRoute Announcerã¨ããæ¹æ³ãããã¾ãããããæ´»ç¨ãããã¨ã§ãã¼
æ¬ãã³ãããã¯ã¯ã ãã¹ã¦ã®å©ç¨è ãã¦ã§ããµã¤ããå©ç¨ã§ããããã«ããããã«ãéçºè ã®è¦ç¹ãã WCAG 2.0ï¼JIS X 8341-3:2016ï¼ã®éæåºæºã ãæ¦è¦ãå®è·µãã¹ããã¨ãéç¨è ã¸ã®æ³¨æãéçºè ã¸ã®æ³¨æãã«åãã¦ãè¦ç¹ãã·ã³ãã«ã«ã¾ã¨ãã¦ãã¾ãã ã¢ã¯ã»ã·ããªãã£ã®æåã®ä¸æ©ã¨ã㦠ã¦ã§ãã¢ã¯ã»ã·ããªãã£ãåä¸ãããããã®ç¬¬ä¸æ©ã¨ãã¦ã以ä¸ã®2ç¹ã確èªãããã¨ããå§ããã¾ãã ãã¼ãã¼ãã®ã¿ã§ãµã¤ããæä½ã§ãããï¼ ãµã¤ãå ãã¿ããã¼ã§ç§»åã§ããéè¦ãªãã¿ã³ããªã³ã¯ã«ãã©ã¼ã«ã¹ãå½ãããã確èªãã¾ãããã ã¹ã¯ãªã¼ã³ãªã¼ãã¼ã§æ£ããèªã¿ä¸ãããããï¼ NVDAãVoiceOverãªã©ã®ã¹ã¯ãªã¼ã³ãªã¼ãã¼ã使ç¨ãã¦ãã³ã³ãã³ããèªç¶ã«èªã¿ä¸ããããå¿ è¦ãªæ å ±ãæ¼ãã¦ããªããã確èªãã¦ãã ããã ã¾ãã¯ãããã®ç¹ã確èªãããã®å¾ã®ã¹ãããã¨ãã¦ãéç¨æã®ã¦ã§ãã¢ã¯ã»ã·ããªãã£ã®
Web ã¢ã¯ã»ã·ããªãã£ã«èå³ããã£ãã®ã§ãã¾ãæ©æ¢°çãªãã§ãã¯ãã¼ã«ããå¦ãã§ç¥èãå¢ãããã¨ãããã¨ã§ãã®ãµã¤ãã« @axe-core/playwright 㨠markuplint ãå°å ¥ãã¦ã¿ã¾ããã @axe-core/playwright ã®ã»ããã¢ãã æ¢ã« Playwright ãå°å ¥ããã¦ããç¶æ³ãæ³å®ãé²ãã¾ããã¾ã@axe-core/playwright ãã¤ã³ã¹ãã¼ã«ãã¾ãã pnpm add -D @axe-core/playwright ãã®ãµã¤ãã®å ´å VRT ã¨ã㦠Playwright ãåããã¦ãããã¹ããããã®ã§(éå»è³æ)ããã®ããã»ã¹ã«åå± ãã形㧠axe ãå®è¡ãããã¨ã«ãã¾ããã e2e.test.tsimport AxeBuilder from "@axe-core/playwright"; import type { Page, TestI
åä½ãã¹ãã§ã¹ã¯ãªã¼ã³ãªã¼ãã¼ãã·ãã¥ã¬ã¼ããã Virtual Screen Reader 2024.03.16 Virtual Screen Reader ã¯åä½ãã¹ãã®ããã«ã¹ã¯ãªã¼ã³ãªã¼ããã·ãã¥ã¬ã¼ãããã©ã¤ãã©ãªã§ãããã®ã©ã¤ãã©ãªã使ããã¨ã§ãã¦ã¹ãããã¼ãã®æä½ããã¹ãããããã«ãã¹ã¯ãªã¼ã³ãªã¼ãã¼ã«ããæå¾ ããèªã¿ä¸ããè¡ããããã©ããããã¹ãã§ãã¾ãããªããVirtual Screen Reader ã¯ããã¾ã§ã¹ã¯ãªã¼ã³ãªã¼ãã¼ã®æåã模å£ãããã®ã§ãããç¾å®ã§ä½¿ããã¦ããã¹ã¯ãªã¼ã³ãªã¼ãã¼ã«ãããã¹ãã代æ¿ãããã®ã§ã¯ãªããã¨ã«æ³¨æãã¦ãã ããã
è¦ã ã¢ã¯ã»ã·ããªãã£ã¯ä¸é¨ã®ã¦ã¼ã¶ã¼ã«ããå½±é¿ãä¸ããªã å½±é¿ãå°ããããã§ã¯ãªããä¸çã®äººå£ã®ç´15%ãæ¨å®10å人ãé害ãæã£ã¦æ®ããã¦ãã¾ãã é害è ã¯ä¸çæ大ã®ãã¤ããªãã£ã§ãã é害è ã®æ°ã¯åçã«å¢å ãã¦ãã¾ãã ã¢ã¯ã»ã·ããªãã£ã¯ä¸é¨ã®ã¦ã¼ã¶ã¼ã«ããå½±é¿ãä¸ããªãã«ã¤ã㦠詳細ãè¦ã é害è ã¯ã¦ã§ããµã¤ããå©ç¨ãã¦ããªã ã©ããã¦ãã®ãããªãã¨ãè¨ããã®ã§ããããã è²è¦ç°å¸¸ãéåé害ãªã©ã®é害ãæã¤å¤ãã®äººããä»ã®ã¦ã¼ã¶ã¼ã¨åãããã«ã¦ã§ããµã¤ããå©ç¨ãã¦ãã¾ãã ã¾ããã©ã®ãããªæ段ããã£ã¦ãã¦ãå¤ãã®æ¯æ´æè¡ã§ã¯æ¤åºã§ãã¾ããã é害è ã¯ã¦ã§ããµã¤ããå©ç¨ãã¦ããªããã¨ã«ã¤ã㦠詳細ãè¦ã ã¦ã§ããµã¤ããã¢ã¯ã»ã·ãã«ã«ããã«ã¯ãã³ã¹ãã¨æéãããã ããã¸ã§ã¯ãã®åæ段éããã¢ã¯ã»ã·ããªãã£ãèæ ®ããéçºãã¼ã ãé©åãªã¹ãã«ãæã£ã¦ããã°ããã®ãããªãã¨ã¯ãªãããããã¾
Web Content Accessibility Guidelines (WCAG) 2.2 W3C Recommendation 12 December 2024 More details about this document This version: https://www.w3.org/TR/2024/REC-WCAG22-20241212/ Latest published version: https://www.w3.org/TR/WCAG22/ Latest editor's draft:https://w3c.github.io/wcag/guidelines/22/ History: https://www.w3.org/standards/history/WCAG22/ Commit history Implementation report: https://w
ããããã¢ã¯ã»ã·ãã«ãªãµã¼ãã¹ã¨ã¯ãã©ã®ãããªãµã¼ãã¹ãå®è£ ãæãã®ã§ããããã 端çã«è¡¨ç¾ãããªãã°ããä¼ãããæ å ±ãæ£ããææ¸æ§é ã«ãã£ã¦å®è£ ããã¦ãããµã¼ãã¹ãã ã¨èãã¾ãã ä¾ãã°ä»¥ä¸ã®ãããªãã¿ã³ã®å®è£ ããã£ãã¨ãã¾ãã ãã¡ããã¬ã³ããªã³ã°ãããçµæã§ãã ãã¡ããã¹ã¯ãªã¼ã³ãªã¼ãã¼ã®çµæã§ãã (Macã®å ´åcommand+F5ã§VoiceOverã使ç¨ãããã¨ãã§ãã¾ãã) ãã®ä¾ã®å ´åãè¦è¦çãªæ å ±ã¨ãæ¯æ´æè¡ãä»ãã¦å¾ãããæ å ±ã¨ã§å·®ç°ãç£ã¾ãã¦ãã¾ã£ã¦ãã¾ããããã¯ã¢ã¯ã»ã·ãã«ã§ã¯ããã¾ãããï¼ä¾å¤[1]ãããã¾ããï¼ ãã®ä¾ã®å ´åããã¿ã³ã®åããç·¨éã§ããã°ãã¹ã¯ãªã¼ã³ãªã¼ãã¼ã«ããåå¾ããåé¤ã¨ããæ å ±ã¯èª¤ãã«ãªãã¾ãã ã¹ã¯ãªã¼ã³ãªã¼ãã¼ã®ãããªæ¯æ´æè¡ã¯ãã¢ã¯ã»ã·ããªãã£ããªã¼ãå ã«æ å ±ã®å¦çã»åºåãè¡ãã¾ãã ãã®ã¢ã¯ã»ã·ããªãã£ããªã¼ã¯ãDOMããªã¼ã¨ãã
One of the most common accessibility issues I find (and fix) on client projects is dynamically disabled form buttons when a form is being submitted. Today I want to talk about why developers do it, why itâs bad, and what you can do instead. Letâs dig in! Why developers disable buttons Typically, I see the pattern used to prevent a form from being submitted a second time while waiting for the form
1è¡ã§ altå±æ§ã¯ããå ¨ã¦ã® ç»åããã®altå±æ§ã®ããã¹ãã«ç½®ãæããã¨ãã«ãã¼ã¸ã®æå³ãå¤ãããªã ãããã«ã¤ããã ï¼HTMLã®æ¨æºè¦æ ¼æ¸ããï¼ ãã¸ã§ããã«å°½ããã å ·ä½ä¾ ä¾ï¼ï¼ãã´ â ééã£ããã¼ã¯ã¢ãã
ãã®è¨äºã¯ Front-End Study #3 ã§çºè¡¨ãããã©ã¤ãã³ã¼ãã£ã³ã°ã®å 容ãè¨äºã«ãããã®ã§ããè¨äºä¸ã®ã½ã¼ã¹ã³ã¼ã㯠GitHub ã§ã覧ããã ãã¾ãã ãã®è¨äºã¯ãããã¾ã§ä¸è¬çãªããã³ãã¨ã³ãã¨ã³ã¸ãã¢ã ã£ãç§ãä¸å¹´ã»ã©ã¢ã¯ã»ã·ããªãã£ã¼ã«ã¤ãã¦åå¼·ããä¸ã§ ãæåã«æãã¦ãããã°ããã£ãã®ã«ãï¼ãã¨æã£ãå 容 ã React 㨠Next.js ãç¨ãã¦ç´¹ä»ãããã®ã¨ãªã£ã¦ãã¾ãã èªã¿çµãã£ãå¾ã«æ¬¡ã«ã³ã¼ããæ¸ãéã«ãµã¨æèã§ãããããªã¢ã¯ã»ã·ããªãã£ã¼ã®æ®éçãªäºå®ãç´¹ä»ããæå¾ã«ä»å¾ã® React ã®åãã«ã¤ãã¦è»½ã触ãããã®ã«ãªã£ã¦ãã¾ããç®æ¬¡ã¯æ¬¡ã®ã¨ããã§ãï¼ åºæ¬äºé SPA ã®ã«ã¼ãã£ã³ã°ã«ããåé¡ ãªãããªã³ã³ãã¼ãã³ãã§ã®ä¾ Jest + React Testing Library ã§ã®ãã¹ã Reactã¨ã¢ã¯ã»ã·ããªãã£ã¼ã®ä»å¾ã®åã å½¹ã«ç«ã¤web
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}