HTMLï¼æ éç¢çè¯å¥½åºç¡
å¨ç½é¡µå¼åçè¿ç¨ä¸ï¼ç¨æ£ç¡®ç HTML æ ç¾æ¥è¡¨è¾¾æ£ç¡®çæå¾ï¼å¯ä»¥æåç½é¡µçæ éç¢ãè¿ç¯æç« å°ä¼è¯¦ç»ä»ç»å¦ä½æå¤§åå°æåç½é¡µçæ éç¢ã
| åæï¼ | æä¸å®ç HTML åºç¡ï¼å¯åé HTML å ¥é¨ï¼ï¼çè§£ä»ä¹æ¯æ éç¢ã |
|---|---|
| ç®æ ï¼ | äºè§£æ éç¢ä¸ºç½é¡µå¸¦æ¥ç好å¤åå¦ä½å¨ç½é¡µä¸è¿è¡å®ç°ã |
HTML åæ éç¢
å¨å¦ä¹ HTML çè¿ç¨å½ä¸ï¼ç»å¸¸å¯ä»¥çå°è¿æ ·ä¸ä¸ªä¸»é¢ï¼HTML è¯ä¹åçéè¦æ§ãæææ¯ææä»¬åºå°½å¯è½å°ç¨æ£ç¡®ç HTML æ ç¾æ¥è¡¨è¾¾æ£ç¡®çæå¾ã
ä½ å¯è½å¨æ³ï¼ä¸ºä»ä¹è¯ä¹å对äºä¸ä¸ªç½é¡µæ¥è¯´å¦æ¤éè¦ãæ»çæ¥è¯´ï¼æ£ç¡®çè¯ä¹åå¯ä½¿ CSS å JavaScript æ´ä¸ºä¾¿å©å°æä½ç½é¡µçæ ·å¼åè¡ä¸ºãä¾å¦ï¼ä¸ä¸ªç¨æ¥æä½è§é¢ææ¾çæé®å¯ä»¥åæè¿æ ·ä¸ç§å½¢å¼ï¼
<div>Play video</div>
æ¥ä¸æ¥ä½ å°çå°ä¸ç§æ´å¥½çåæ³ï¼å®ä½¿ç¨äºæ£ç¡®ç HTML æ ç¾ï¼çä¸å»æ´å åçï¼
<button>Play video</button>
<button>æ ç¾ä¸ä»
æä¾äºæé®çæ ·å¼ï¼è½ç¶ææ¶ä¼éæ°ç¼åæ ·å¼ï¼ï¼è¿æä¾äºé®ççæ éç¢ï¼å¦ï¼ä½¿ç¨ tab 鮿´æ¢æé®ï¼ä½¿ç¨å车é®ç¹å»æé®ã
å¦æä½ å¨é¡¹ç®çä¸å¼å§å°±ä½¿ç¨ HTML è¯ä¹åï¼ä¸ä» ä¸ä¼è±æ´å¤çæ¶é´ï¼èä¸åæä»¥ä¸çæ éç¢ä¼ç¹ï¼
- æ´ä¾¿äºå¼å â å¦ä¸æè¿°ï¼ä½ å¯ä»¥ä½¿ HTML æ´æäºçè§£ï¼å¹¶ä¸å¯ä»¥æ¯«ä¸è´¹åçè·å¾ä¸äºåè½ã
- æ´éé ç§»å¨ç«¯ â è¯ä¹åç HTML æä»¶æ¯éè¯ä¹åç HTML æä»¶æ´å 轻便ï¼å¹¶ä¸æ´æäºååºå¼å¼åã
- æ´ä¾¿äº SEO ä¼å â æ¯èµ·ä½¿ç¨éè¯ä¹åç<div>æ ç¾ï¼æç´¢å¼ææ´å éè§å¨âæ é¢ã龿¥çâéé¢çå ³é®åï¼ä½¿ç¨è¯ä¹åå¯ä½¿ç½é¡µæ´å®¹æè¢«ç¨æ·æç´¢å°ã
让æä»¬æ¥ç»§ç»å¦ä¹ HTML è¯ä¹åå®ç°ç»åã
夿³¨ï¼å¨æ¬å°è®¡ç®æºä¸è®¾ç½®å±å¹é è¯»å¨æ¯ä¸ä¸ªä¸éç主æï¼å æ¤ä½ å¯ä»¥å¯¹ä¸é¢æ¾ç¤ºç示ä¾è¿è¡ä¸äºæµè¯ãæ´å¤å 容请æ¥é Screenreaders guideã
è¯å¥½çè¯ä¹
ä¸é¢æä»¬è®¨è®ºäºè¯ä¹åçéè¦æ§ä»¥å为ä»ä¹æä»¬è¦ä½¿ç¨æ£ç¡®ç HTML æ ç¾æ¥è¡¨è¾¾æ£ç¡®çæå¾ãè¯ä¹åæ¯æä»¬ä¸å¯å¿½è§çä¸é¨åï¼å 为å®å¾å¾å³å®äºç½é¡µçæ éç¢ã
å¨ç½ç»ä¸ï¼äºå®ä¸äººä»¬ç¨ HTML æ ç¾åä¸äºé叏奿ªçäºæ ã人们滥ç¨ä¸äºå³å°åºå¼æå·²ç»åºå¼çæ ç¾ãä¸ç®¡å¨ä»ä¹æ åµä¸ï¼æä»¬é½åºè¯¥å°è¿äºé误çä»£ç æ¹æ£è¿æ¥ã
è¯è½å¦æ¤ï¼ä½æ¯æäºæ 嵿们å¾å¾ä¸è½æè±éè¯¯çæ ç¾ï¼ä¾å¦ä¸ä¸ªç½é¡µæ¯ä»æå¡ç«¯çæ¡æ¶çæçï¼æè ç½é¡µä¸åå¨ç¬¬ä¸æ¹çå 容ï¼å¦å¹¿åï¼ï¼è¿äºé½æ¯æä»¬æä¸è½æ§å¶çã
æä»¬çç®æ 并䏿¯âå ¨ææå ¨æ âï¼å®é ä¸ï¼ä½ æåçæ¯ä¸ä¸ªæ¹è¿é½å¯ä»¥æåç½é¡µçæ éç¢ã
ææ¬å 容
对äºå±å¹é 读å¨ç¨æ·æ¥è®²ï¼æä½³è¾ å©åè½ä¹ä¸æ¯æ¥ææ é¢ï¼æ®µè½ï¼å表çå 容çè¯å¥½ç»æãä¸ä¸ªå¥½çè¯ä¹ç¤ºä¾å¯è½å¦ä¸æç¤ºï¼
<h1>My heading</h1>
<p>This is the first section of my document.</p>
<p>I'll add another paragraph here too.</p>
<ol>
<li>Here is</li>
<li>a list for</li>
<li>you to read</li>
</ol>
<h2>My subheading</h2>
<p>
This is the first subsection of my document. I'd love people to be able to
find this content!
</p>
<h2>My 2nd subheading</h2>
<p>
This is the second subsection of my content. I think is more interesting than
the last one.
</p>
æä»¬å·²ç»åå¤äºä¸ä¸ªæ´é¿çææ¬çæ¬ï¼ä¾ä½ è¯ç¨äºå±å¹é 读å¨ï¼è¯·æ¥ç good-semantics.htmlï¼ãå¦æä½ å°è¯å¨æ¤è¿ç¨ä¸å¯¼èªï¼ä½ å°çå°è¿é常容æå¯¼èªï¼
- å±å¹é 读å¨ä¼å¨ä½ æµè§å 容æ¶è¯»åæ¯ä¸ªæ é¢ï¼éç¥ä½ æ 颿¯ä»ä¹ï¼æ®µè½æ¯ä»ä¹çã
- å®å¨æ¯ä¸ªå ç´ ä¹å忢ï¼è®©ä½ 以任ä½éåä½ çé度åè¿ã
- ä½ å¯ä»¥å¨è®¸å¤å±å¹é 读å¨ä¸è·³å°ä¸ä¸ä¸ª/ä¸ä¸ä¸ªæ é¢ã
- ä½ è¿å¯ä»¥å¨è®¸å¤å±å¹é 读å¨ä¸æ¾ç¤ºæææ é¢çå表ï¼ä½¿ä½ å¯ä»¥å使ç¨ä¾¿å©çç®å½ä¸æ ·ä½¿ç¨å®ä»¬ä»¥æ¥æ¾ç¹å®å 容ã
äººä»¬ææ¶ä¼ä½¿ç¨è¡¨ç°æ§ HTML 忢è¡ç¬¦æ¥ç¼åæ é¢ï¼æ®µè½çï¼å¦ä¸æç¤ºï¼
<font size="7">My heading</font> <br /><br />
This is the first section of my document.
<br /><br />
I'll add another paragraph here too.
<br /><br />
1. Here is
<br /><br />
2. a list for
<br /><br />
3. you to read
<br /><br />
<font size="5">My subheading</font>
<br /><br />
This is the first subsection of my document. I'd love people to be able to find
this content!
<br /><br />
<font size="5">My 2nd subheading</font>
<br /><br />
This is the second subsection of my content. I think is more interesting than
the last one.
å¦æä½ ä½¿ç¨å±å¹é 读å¨è¯ç¨æ´é¿å 容ççæ¬ï¼è¯·æ¥é bad-semantics.htmlï¼ï¼ä½ ä¸ä¼æä¸ä¸ªå¾å¥½çç»éª â å±å¹é è¯»å¨æ²¡æä»»ä½ä¸è¥¿å¯ä»¥ç¨ä½è·¯æ ï¼æä»¥ä½ æ æ³æ£ç´¢æç¨çç®å½ï¼æ´ä¸ªé¡µé¢è¢«çä½ä¸ä¸ªå·¨å¤§çåï¼æä»¥å®åªæ¯ä¸æ¬¡è¯»åºææçå 容ã
é¤äºæ éç¢ä¹å¤ï¼è¿æå ¶ä»ä¸äºé®é¢ - ä½¿ç¨ CSS 设计å 容ç飿 ¼æ´é¾ï¼æè ä½¿ç¨ JavaScript æ¥æä½å®æ¯è¾å°é¾ï¼å 为没æå¯ç¨ä½éæ©å¨çå ç´ ã
使ç¨éä¿ææçè¯è¨
ä½ ä½¿ç¨çè¯è¨ä¹ä¼å½±åæ éç¢ãä¸è¬æ¥è¯´ï¼ä½ åºè¯¥ä½¿ç¨ä¸å¤ªå¤æçæ¸ æ°è¯è¨ï¼ä¸è¦ä½¿ç¨ä¸å¿ è¦çè¡è¯æä¿è¯ãè¿ä¸ä» æå©äºæè®¤ç¥æå ¶ä»æ®ç¾ç人ï¼å®æå©äºé£äºæ²¡æç¨æ¯è¯åä½ç读è ï¼å¹´è½»äºº...äºå®ä¸æ¯æ¯ä¸ªäººï¼é¤æ¤ä¹å¤ï¼ä½ åºè¯¥å°½éé¿å ä½¿ç¨æ²¡æè¢«å±å¹é è¯»å¨æ¸ æ¥è¯»åºçè¯è¨åå符ãä¾å¦ï¼
- 妿å¯ä»¥é¿å çè¯ï¼ä¸è¦ç¨ç ´æå·ãå 5 å° 7ï¼æ¥æ¿ä»£ 5-7ã
- å±å¼ç¼©å â å Januaryï¼æ¥æ¿ä»£ Janã
- å±å¼é¦åæ¯ç¼©ç¥è¯ï¼è³å°ä¸æ¬¡æä¸¤æ¬¡ãä¾å¦åæâè¶ ææ¬æ è®°è¯è¨âï¼Hypertext Markup Languageï¼ï¼è䏿¯ç´æ¥ç¨ç¼©å HTMLã
页é¢å¸å±
卿§æ¶ä»£ï¼äººä»¬æ¾ç»ä½¿ç¨ HTML è¡¨æ ¼å建页é¢å¸å± - 使ç¨ä¸åçè¡¨æ ¼åå æ ¼æ¥å å«é¡µçï¼é¡µèï¼è¾¹æ ï¼ä¸»è¦å 容æ çãè¿ä¸æ¯ä¸ä¸ªå¥½ä¸»æï¼å 为å±å¹é 读å¨å¯è½ä¼è¯»åºç»äººé æå°æçç»æï¼ç¹å«æ¯å¦æå¸å±å¤æï¼å¹¶ä¸æè®¸å¤åµå¥è¡¨æ ¼çè¯ã
è¯è¯æä»¬çä¾åtable-layout.htmlï¼å®çèµ·æ¥åè¿æ ·ï¼
<table width="1200">
<!-- main heading row -->
<tr id="heading">
<td colspan="6">
<h1 align="center">Header</h1>
</td>
</tr>
<!-- nav menu row -->
<tr id="nav" bgcolor="#ffffff">
<td width="200">
<a href="#" align="center">Home</a>
</td>
<td width="200">
<a href="#" align="center">Our team</a>
</td>
<td width="200">
<a href="#" align="center">Projects</a>
</td>
<td width="200">
<a href="#" align="center">Contact</a>
</td>
<td width="300">
<form width="300">
<input type="search" name="q" placeholder="Search query" width="300" />
</form>
</td>
<td width="100">
<button width="100">Go!</button>
</td>
</tr>
<!-- spacer row -->
<tr id="spacer" height="10">
<td></td>
</tr>
<!-- main content and aside row -->
<tr id="main">
<td id="content" colspan="4" bgcolor="#ffffff">
<!-- main content goes here -->
</td>
<td id="aside" colspan="2" bgcolor="#ff80ff" valign="top">
<h2>Related</h2>
<!-- aside content goes here -->
</td>
</tr>
<!-- spacer row -->
<tr id="spacer" height="10">
<td></td>
</tr>
<!-- footer row -->
<tr id="footer" bgcolor="#ffffff">
<td colspan="6">
<p>©Copyright 2050 by nobody. All rights reversed.</p>
</td>
</tr>
</table>
å¦æä½ å°è¯ä½¿ç¨å±å¹é è¯»å¨æµè§æ¤å 容ï¼å®å¯è½ä¼åè¯ä½ éè¦æ¥çä¸ä¸ªè¡¨æ ¼ï¼å°½ç®¡æäºå±å¹é 读å¨å¯ä»¥çæµè¡¨æ ¼å¸å±åæ°æ®è¡¨æ ¼ä¹é´çåºå«ï¼ãç¶åï¼ä½ å¯è½ï¼åå³äºä½ 使ç¨çå±å¹é 读å¨ï¼å¿ é¡»éè¦è¿å ¥å°è¡¨æ ¼å¯¹è±¡ä¸ï¼å¹¶åç¬å°æ¥çè¡¨æ ¼çå 容ï¼ç¶å忬¡ç¦»å¼è¡¨æ ¼ï¼ä»¥ç»§ç»æµè§å ¶ä»å 容ã
ç¨è¡¨æ ¼å¸å±ç½é¡µæ¯è¿å»æ§æ¶ä»£çé迹 - å¨âCSSâ卿µè§å¨ä¸å¹¶ä¸æ®éè¢«æ¯ææ¶ï¼å®ä»¬æ¯ææä¹çï¼ä½æ¯å®ä»¬ä¼ä¸ºå±å¹é 读å¨ç¨æ·é ææ··æ·ï¼å¹¶ä¸ç±äºè®¸å¤å ¶ä»åå åå¾å¾ç³ç³ï¼æ»¥ç¨è¡¨æ ¼ï¼å¯è½å æ¤éè¦æ´å¤çæ è®°ï¼ä½¿è®¾è®¡æ´ä¸çµæ´»ï¼ãä¸è¦è¿æ ·åï¼
ä½ å¯ä»¥éè¿å°ä½ ä¹åçä½éªä¸ æ´ç°ä»£çç½ç«ç»æç¤ºä¾ è¿è¡æ¯è¾ï¼æ¥éªè¯è¿äºå£°æï¼è¯¥ç¤ºä¾å¦ä¸æç¤ºï¼
<header>
<h1>Header</h1>
</header>
<nav>
<!-- main navigation in here -->
</nav>
<!-- Here is our page's main content -->
<main>
<!-- It contains an article -->
<article>
<h2>Article heading</h2>
<!-- article content in here -->
</article>
<aside>
<h2>Related</h2>
<!-- aside content in here -->
</aside>
</main>
<!-- And here is our main footer that is used across all the pages of our website -->
<footer>
<!-- footer content in here -->
</footer>
å¦æä½ ä½¿ç¨å±å¹é 读å¨é 读æ´ç°ä»£çç»æç¤ºä¾ï¼åä¼çå°å¸å±æ è®°ä¸åä¼å¦¨ç¢å 容ç读åãå®å¨ä»£ç 大尿¹é¢ä¹æ´å ç²¾ç®åå°å·§ï¼è¿æå³çä»£ç æ´å®¹æç»´æ¤ï¼å¹¶ä¸ç¨æ·ä¸è½½ç带宽æ´å°ï¼ç¹å«éåæ ¢éè¿æ¥çç¨æ·ï¼ã
å建å¸å±æ¶çå¦ä¸ä¸ªèèå ç´ æ¯ä½¿ç¨ HTML5 è¯ä¹å
ç´ ï¼å¦ä¸ä¾æç¤ºï¼è¯·åé
æ¤å
容é¨åï¼ââä½ åªè½ä½¿ç¨åµå¥ç <div> å
ç´ å建å¸å±ï¼ä½æå¥½ä½¿ç¨éå½çåæ®µå
ç´ å
è£¹ä½ ç主导èªï¼<nav>ï¼ï¼footerï¼<footer>ï¼ï¼éå¤å
容åå
ï¼<article>ï¼çãè¿äºä¸ºå±å¹é
读å¨ï¼åå
¶ä»å·¥å
·ï¼æä¾é¢å¤çè¯ä¹ï¼ä¸ºç¨æ·æä¾æå
³ä»ä»¬æ£å¨æµè§çå
容çé¢å¤ä¿¡æ¯ï¼è¯·åé
å±å¹é
è¯»å¨æ¯æçæ°ç HTML5 ç« èå
ç´ ï¼äºè§£å±å¹é
读å¨çæ¯ææ¯ä»ä¹æ ·çåçï¼ã
夿³¨ï¼é¤äºä½ çå å®¹å ·æè¯å¥½çè¯ä¹åæå¸å¼åçå¸å±ä¹å¤ï¼å®çæºä»£ç 顺åºåºè¯¥æ¯åçç - ä½ å¯ä»¥éæ¶å°å®æ¾å¨ä½ æ³è¦ä½¿ç¨ CSS çä½ç½®ï¼ä½æ¯ä½ åºè¯¥å 仿ºä»£ç å¼å§ï¼å¦æ¤è¿æ ·ï¼å±å¹é 读å¨è¯»åç»ä»ä»¬çå 容å°ä¼é常便äºçè§£ã
UI æ§ä»¶
éè¿ UI æ§ä»¶ï¼æä»¬æçæ¯ä¸ç¨æ·äº¤äºç Web ææ¡£ç主è¦é¨å - éå¸¸æ¯æé®ï¼é¾æ¥åè¡¨åæ§ä»¶ã卿¬èä¸ï¼æä»¬å°ä»ç»å建æ¤ç±»æ§ä»¶æ¶è¦æ³¨æçåºæ¬æ éç¢é®é¢ãç¨åå ³äº WAI-ARIA åå¤åªä½çæç« å°çç¼äº UI æ éç¢çå ¶ä»æ¹é¢ã
UI æ§ä»¶æ éç¢çä¸ä¸ªå ³é®æ¹é¢æ¯ï¼é»è®¤æ åµä¸ï¼æµè§å¨å è®¸ç¨æ·éè¿é®çæä½å®ä»¬ãä½ å¯ä»¥ä½¿ç¨æä»¬ç native-keyboard-accessibility.html 示ä¾ï¼è¯·åé æºä»£ç ï¼ãå°è¯æ¤æä½ - 卿°é项å¡ä¸æå¼æ¤é¡¹ï¼ç¶åå°è¯æ Tab é®; å æ¬¡æä¸åï¼ä½ åºè¯¥çå°æ ç¾ç¦ç¹å¼å§ç§»å¨å°ä¸åçå ç´ ; 卿¯ä¸ªæµè§å¨ä¸ï¼è·å¾ç¦ç¹å ç´ é½ä¼æä¸ä¸ªâçªåºæ¾ç¤ºâçé»è®¤æ ·å¼ï¼å®å¨ä¸åæµè§å¨ä¹é´ç¥æä¸åï¼ï¼ä»¥ä¾¿ä½ å¯ä»¥ç¡®å®å½ååªäºå ç´ è·å¾ç¦ç¹ã
![]()
æ¥çä½ å¯ä»¥æ Enter / Return æ¥è¿½è¸ªå½åè·å¾ç¦ç¹ç龿¥ï¼æè
ææé®æ¥å®ç°ï¼æä»¬å·²ç»ä½¿ç¨ JavaScript 使æé®åæ¶æ¾ç¤ºæç¤ºæ¶æ¯ï¼ï¼æè
å¼å§å¨ææ¬è¾å
¥ä¸è¾å
¥ææ¬ï¼å
¶ä»è¡¨åå
ç´ å
·æä¸åçæ§ä»¶ï¼ä¾å¦ <select> å
ç´ æ¥æèªå·±çæ¾ç¤ºé项ï¼å¯ä»¥ä½¿ç¨åä¸ååä¸ç®å¤´é®è¿è¡å¾ªç¯ï¼ã
夿³¨ï¼ä¸åçæµè§å¨å¯è½æä¸åçé®çæ§å¶é项ã请åé ä½¿ç¨æ¬æºé®çè¾ å©åè½è·åæ´å¤è¯¦ç»ä¿¡æ¯ã
å®é ä¸ï¼ä½ åªé使ç¨éå½çå ç´ å³å¯å è´¹è·å¾æ¤åè½ï¼ä¾å¦ï¼
<h1>Links</h1>
<p>This is a link to <a href="https://www.mozilla.org">Mozilla</a>.</p>
<p>
Another link, to the
<a href="https://developer.mozilla.org">Mozilla Developer Network</a>.
</p>
<h2>Buttons</h2>
<p>
<button data-message="This is from the first button">Click me!</button>
<button data-message="This is from the second button">Click me too!</button>
<button data-message="This is from the third button">And me!</button>
</p>
<h2>Form</h2>
<form>
<div>
<label for="name">Fill in your name:</label>
<input type="text" id="name" name="name" />
</div>
<div>
<label for="age">Enter your age:</label>
<input type="text" id="age" name="age" />
</div>
<div>
<label for="mood">Choose your mood:</label>
<select id="mood" name="mood">
<option>Happy</option>
<option>Sad</option>
<option>Angry</option>
<option>Worried</option>
</select>
</div>
</form>
è¿æå³çéå½å°ä½¿ç¨é¾æ¥ï¼æé®ï¼è¡¨åå
ç´ åæ ç¾ï¼å
æ¬è¡¨åæ§ä»¶ç å
ç´ ï¼ã<label>
ç¶èï¼äººä»¬ææ¶åä¼ç¨ HTML å奿ªçäºæ
ãä¾å¦ï¼ä½ ææ¶ä¼çå°ä½¿ç¨ æ è®°çæé®ï¼ä¾å¦ï¼<div>
<div data-message="This is from the first button">Click me!</div>
<div data-message="This is from the second button">Click me too!</div>
<div data-message="This is from the third button">And me!</div>
使¯ä¸å»ºè®®ä½¿ç¨è¿æ ·ç代ç - ä½ ä¼ç«å³å¤±å»æ¬æºé®ççæ éç¢ãä½å¦æä½ 使ç¨äº å
ç´ ï¼ä½ å°å¯ä»¥éè¿é®çæ§å¶ãæ¤å¤ä½ ä¹å°ä¸ä¼è·å¾ä»»ä½çæé®é»è®¤æ¥æç CSS æ ·å¼ã<button>
éæ°å»ºç«é®ççæ éç¢
éæ°æ·»å è¿äºä¼ç¹éè¦ä¸äºå·¥ä½ï¼ä½ å¯ä»¥å¨æä»¬ç fake-div-buttons.html 示ä¾ä¸ä½¿ç¨ç¤ºä¾ä»£ç - å¦è¯·åé
æºä»£ç ï¼ãå¨è¿éï¼æä»¬éè¿èµäºæ¯ä¸ª <div> æé®å±æ§tabindex =â0â æ¥ä½¿å®è½å¤è¢«èç¦ï¼å
æ¬éè¿é项å¡ï¼ï¼
<div data-message="This is from the first button" tabindex="0">Click me!</div>
<div data-message="This is from the second button" tabindex="0">
Click me too!
</div>
<div data-message="This is from the third button" tabindex="0">And me!</div>
åºæ¬ä¸ï¼tabindex 屿§ä¸»è¦ç¨äºå
许 tabbable å
ç´ å
·æèªå®ä¹ Tab é®é¡ºåºï¼ä»¥æ£æ°é¡ºåºæå®ï¼ï¼è䏿¯ä»
æå
¶é»è®¤æºé¡ºåºè¿è¡æ è®°ãè¿å 乿»æ¯ä¸ä¸ªç³ç³ç主æï¼å 为å®å¯è½ä¼é æé大混乱ãä¾å¦ï¼å¦æå¸å±ä»¥ä¸æºä»£ç é常ä¸åçè§è§é¡ºåºæ¾ç¤ºäºç©ï¼èä¸ä½ æ³è®©äºæ
æ´ç¬¦åé»è¾ãè¿é tabindex æå¦å¤ä¸¤ä¸ªé项ï¼
tabindex="0"â å¦ä¸æè¿°ï¼è¯¥å¼å 许 é常ä¸å¯æ¾ç½®çå ç´ ï¼tabbable elementsï¼åä¸ºå¯æ¾ç½®çãè¿æ¯ tabindex ææç¨çå°æ¹ãtabindex="-1"â è¿å 许 é常ä¸å¯æ¾ç½®çå ç´ ï¼tabbable elementsï¼ä»¥ç¼ç¨çæ¹å¼æ¥æ¶ç¦ç¹ï¼ä¾å¦ï¼éè¿ JavaScriptï¼æä½ä¸ºé¾æ¥çç®æ ã
è½ç¶ä¸é¢çæ·»å å
许æä»¬ç¨ tab éæ©æé®ï¼ä½å®ä¸å
许æä»¬éè¿ Enter / Return 鮿¥æ¿æ´»å®ä»¬ãè¦åå°è¿ä¸ç¹ï¼æä»¬å¿
须添å ä¸é¢ç JS å°ç»æï¼JavaScript trickeryï¼ï¼
document.onkeydown = function (e) {
if (e.keyCode === 13) {
// The Enter/Return key
document.activeElement.onclick(e);
}
};
å¨è¿éï¼æä»¬åææ¡£å¯¹è±¡ document æ·»å ä¸ä¸ªä¾¦å¬å¨ï¼ä»¥æ£æµä»ä¹æ¶åé®çä¸æä¸æé® æä»¬éè¿äºä»¶å¯¹è±¡ event object ç keyCode 屿§ï¼æ£æ¥ç¨æ·æä¸äºåªä¸ªæé®; 妿宿¯ä¸ Return / Enter å¹é
çå
³é®ä»£ç ï¼æä»¬éè¿æé®ç onclick 彿°ï¼å³ document.activeElement.onclick() ãactiveElement æä¾ç»æä»¬é¡µé¢å½å被 focused çå
ç´ ã
æä»¬ä½¿ç¨document.activeElement.onclickï¼ï¼è¿è¡åå¨å¨æé®ç onclick å¤ç彿°ä¸ç彿°ã activeElement 为æä»¬æä¾äºå½åå
³æ³¨é¡µé¢çå
ç´ ã
夿³¨ï¼ä½ åºè¯¥è®°ä½ï¼åªæéè¿äºä»¶å¤çç¨åºå±æ§ï¼ä¾å¦ onclickï¼è®¾ç½®åå§äºä»¶å¤çç¨åºï¼æ¤æå·§æä¼èµ·ä½ç¨ã addEventListener å°ä¸èµ·ä½ç¨ã
è¿å¯¹äºéæ°æå»ºåè½èè¨æ¯ä¸ä¸ªé¢å¤ç麻ç¦ãèä¸è¿è¯å®ä¼å¸¦æ¥å ¶ä»é®é¢ãä½¿ç¨æ£ç¡®çå ç´ å¤çæ£ç¡®ç工使¯é常éè¦çã
ææä¹çæåæ ç¾
ç¨æ·ç颿§ä»¶ç ææ¬æ ç¾ å¯¹ææç¨æ·é½é常æç¨ï¼ä½æ¯å¯¹äºæ®ç¾ç¨æ·æ¥è¯´ï¼è®©ä»ä»¬æ£ç¡®ä½¿ç¨å°¤å ¶éè¦ã
ä½ åºè¯¥ç¡®ä¿ä½ çæé®å龿¥ææ¬æ ç¾æ¯å¯ä»¥çè§£åç¬ç¹çãä¸è¦ä½¿ç¨âç¹å»è¿éâï¼"Click here"ï¼æ¤ç±»çæ ç¾ï¼å 为å±å¹é 读å¨ç¨æ·ææ¶ä¼ååºæé®åè¡¨æ ¼æ§ä»¶å表ã以ä¸å±å¹æªå¾æ¾ç¤ºäºæä»¬çæ§ä»¶å¨ Mac ä¸ç± VoiceOver ååºã

ç¡®ä¿ä½ çæ ç¾å¨ä¸ä¸æä¸ææä¹ï¼å¯ä»¥åç¬é 读ï¼ä¹å¯ä»¥å¨ä»ä»¬æå¨ç段è½çä¸ä¸æä¸è¿è¡é 读ãä¾å¦ï¼ä¸é¢æ¾ç¤ºäºè¯å¥½é¾æ¥ææ¬ç示ä¾ï¼
<p>
Whales are really awesome creatures.
<a href="whales.html">Find out more about whales</a>.
</p>
ä½è¿æ¯ä¸å¥½ç龿¥æåï¼
<p>
Whales are really awesome creatures. To find more out about whales,
<a href="whales.html">click here</a>.
</p>
夿³¨ï¼ä½ å¯ä»¥å¨æä»¬çåå»ºè¶ é¾æ¥æç« 䏿¾å°æ´å¤å ³äºé¾æ¥å®ç°åæä½³å®è·µçä¿¡æ¯ãä½ è¿å¯ä»¥å¨ good-links.html å bad-links.html ä¸çå°ä¸äºå¥½çåä¸å¥½çä¾åã
è¡¨åæ ç¾ä¹å¾éè¦ï¼å¯ä»¥è®©ä½ äºè§£ä½ éè¦è¾å ¥æ¯ä¸ªè¡¨åè¾å ¥çå 容ã以ä¸ä¼¼ä¹æ¯ä¸ä¸ªè¶³å¤åççä¾åï¼
Fill in your name: <input type="text" id="name" name="name" />
使¯ï¼è¿å¯¹äºæ®ç¾ç¨æ·æ¥è¯´å¹¶ä¸æ¯é£ä¹æç¨ãå¨ä¸é¢ç示ä¾ä¸ï¼æ²¡æä»»ä½å 容尿 ç¾ä¸è¡¨åè¾å ¥æç¡®å ³èãå æ¤å¦æçä¸å°å®ï¼è¯·è®©ç¨æ·æç¡®è¯¥å¦ä½å¡«åãå¦æä½ ä½¿ç¨æäºå±å¹é 读å¨è®¿é®è¯¥å±å¹ï¼ååªè½æç §âç¼è¾ææ¬âï¼âedit textâï¼çæ¹å¼ç»åºè¯´æã
以䏿¯ä¸ä¸ªæ´å¥½çä¾åï¼
<div>
<label for="name">Fill in your name:</label>
<input type="text" id="name" name="name" />
</div>
éè¿è¿æ ·ç代ç ï¼æ ç¾å°æ¸ æ°å°ä¸è¾å ¥ç¸å ³è; æè¿°å°æ´åå¦ä¸è¿ç§å½¢å¼ï¼âå¡«åä½ çå§åï¼ç¼è¾ææ¬âã
![]()
ä½ä¸ºé¢å¤ç好å¤ï¼å¨å¤§å¤æ°å°æ ç¾ä¸è¡¨åè¾å ¥ç¸å ³èçæµè§å¨ä¸ï¼ä½ å¯ä»¥å廿 ç¾æ¥ éæ©/æ¿æ´» 表åå ç´ ãè¿ç»è¾å ¥ä¸ä¸ªæ´å¤§çå¯éä¸åºåï¼ä½¿å ¶æ´å®¹æéæ©ã
夿³¨ï¼ä½ å¯ä»¥å¨ good-form.html å bad-form.html ä¸çå°ä¸äºå¥½çåä¸å¥½ç表å示ä¾ã
æ éç¢æ°æ®è¡¨æ ¼
åºæ¬çæ°æ®è¡¨æ ¼å¯ä»¥ç¨é常ç®åçæ è®°æ¥ç¼åï¼ä¾å¦ï¼
<table>
<tr>
<td>Name</td>
<td>Age</td>
<td>Gender</td>
</tr>
<tr>
<td>Gabriel</td>
<td>13</td>
<td>Male</td>
</tr>
<tr>
<td>Elva</td>
<td>8</td>
<td>Female</td>
</tr>
<tr>
<td>Freida</td>
<td>5</td>
<td>Female</td>
</tr>
</table>
使¯è¿æé®é¢ - å±å¹é 读å¨ç¨æ·æ æ³å°è¡æåä½ä¸ºæ°æ®åç»å ³èå¨ä¸èµ·ãè¦åå°è¿ä¸ç¹ï¼ä½ éè¦ç¥éæ é¢è¡æ¯ä»ä¹ï¼ä»¥åå®ä»¬æ¯å¦å¨è¡ï¼åçæ é¢ä¸ãè¿åªè½å¨ä¸é¢ç表ä¸ä»¥å¯è§åæ¹å¼å®æï¼åè§ bad-table.html ï¼å¹¶èªå·±å°è¯è¿ä¸ªä¾åï¼ã
ç°å¨ççæä»¬ç punk bands table example - ä½ å¯ä»¥å¨è¿éçå°ä¸äºè¾ å©å·¥å ·ï¼accessibility aidsï¼ï¼
- 表头使ç¨
å ç´ å®ä¹ - ä½ è¿å¯ä»¥ä½¿ç¨<th>scope屿§æå®å®ä»¬æ¯è¡è¿æ¯åçæ é¢ãè¿æä¾ç»äºå±å¹é 读å¨å¯ä»¥çè§£ç宿´æ°æ®ç»ã å ç´ å<caption><table>summary屿§é½æ§è¡ç±»ä¼¼çå·¥ä½ - å®ä»¬å å½è¡¨æ ¼çæ¿ä»£ææ¬ï¼ä¸ºå±å¹é 读å¨ç¨æ·æä¾æç¨çè¡¨æ ¼å 容快éæè¦ã<caption>é常æ¯é¦éï¼å 为å®ä½¿å 容å¯ä¾è§åè¯å¥½çç¨æ·è®¿é®ï¼èä¸ä»ä»¬ä¹å¯è½ä¼åç°å®å¾æç¨ãä½ å¹¶ä¸éè¦ä¸¤è é½ä½¿ç¨ï¼ã
夿³¨ï¼æå ³å¯è®¿é®æ°æ®è¡¨çæ´å¤è¯¦ç»ä¿¡æ¯ï¼è¯·åé æä»¬ç HTML è¡¨æ ¼é«çº§åè½åæ éç¢ æç« ã
æ¿ä»£ææ¬
å°½ç®¡ææ¬å
容æ¬èº«æ¯å¯è®¿é®çï¼ä½å¯¹äºå¤åªä½å
容èè¨ä¹ä¸ä¸å®æ¯è¿æ · - å¾å/è§é¢å
容ä¸è½è¢«è§è§éç¢äººå£«çå°ï¼å¹¶ä¸å¬è§éç¢äººå£«ä¸è½å¬å°é³é¢å
容ãç¨åæä»¬å°å¨å¯è®¿é®å¤åªä½æç« ä¸è¯¦ç»ä»ç»è§é¢åé³é¢å
容ï¼ä½å¯¹äºæ¬æï¼æä»¬å°æ¢è®¨ä½å¾®ï¼humbleï¼ç å
ç´ çæ éç¢ã<img>
æä»¬ç¼åäºä¸ä¸ªç®åçä¾åï¼ accessible-image.html ï¼å®å ·æç¸åå¾åçåä¸ªå¯æ¬ï¼
<img src="dinosaur.png" />
<img
src="dinosaur.png"
alt="A red Tyrannosaurus Rex: A two legged dinosaur standing upright like a human, with small arms, and a large head with lots of sharp teeth." />
<img
src="dinosaur.png"
alt="A red Tyrannosaurus Rex: A two legged dinosaur standing upright like a human, with small arms, and a large head with lots of sharp teeth."
title="The Mozilla red dinosaur" />
<img src="dinosaur.png" aria-labelledby="dino-label" />
<p id="dino-label">
The Mozilla red Tyrannosaurus Rex: A two legged dinosaur standing upright like
a human, with small arms, and a large head with lots of sharp teeth.
</p>
第ä¸å¼ å¾çï¼å½ç¨å±å¹é è¯»å¨æ¥çæ¶ï¼å¹¶ä¸çæ£ä¸ºç¨æ·æä¾å¾å¤å¸®å© - ä¾å¦ VoiceOver ä¼è¯»åºâ/dinosaur.pngï¼imageâ ãå®è¯»åºæä»¶å以å°è¯æä¾ä¸äºå¸®å©ãå¨è¿ä¸ªä¾åä¸ï¼ç¨æ·è³å°ç¥é宿¯æç§æé¾ï¼ä½é常æä»¶å¯ä»¥ç¨æºå¨çæçæä»¶åï¼ä¾å¦æ¥èªæ°ç ç¸æºï¼ä¸ä¼ ï¼è¿äºæä»¶åå¯è½ä¸ä¼æä¾å¾åå 容çä¿¡æ¯ã
夿³¨ï¼è¿å°±æ¯ä¸ºä»ä¹ä½ ä¸åºè¯¥å¨å¾åä¸å 嫿æ¬å 容 - å±å¹é è¯»å¨æ ¹æ¬æ æ³è®¿é®å®ãè¿æå ¶ä»çç¼ºç¹ - ä½ ä¸è½éæ©å®å¹¶å¤å¶/ç²è´´å®ãä¸è¦è¿æ ·åï¼
å½å±å¹é
读å¨éå°ç¬¬äºå¼ å¾åæ¶ï¼å®ä¼è¯»åºå®æ´ç alt 屿§ - â红è²é¸çé¾é·å
æ¯ï¼ä¸åªåäººä¸æ ·ç´ç«çåè
¿æé¾ï¼æèå°ï¼å¤´é¨å¤§èéå©ãâ
è¿çªåºäºä¸ä»
卿è°çæ¿ä»£ææ¬ä¸å¯ç¨çæ
åµä¸ä½¿ç¨ææä¹çæä»¶åçéè¦æ§ï¼èä¸è¿ç¡®ä¿å°½å¯è½å°å¨æ¿æ¢å±æ§ alt 䏿便¿ä»£ææ¬ã请注æï¼alt 屿§çå
容åºå§ç»æä¾å¾åçç´æ¥è¡¨ç¤ºä»¥åå®å¨è§è§ä¸ä¼ è¾¾çå
容ãä»»ä½ä¸ªäººç¥è¯æé¢å¤æè¿°é½ä¸åºè¯¥å
å«å¨è¿éï¼å 为å®å¯¹ä»¥å没æç¢°å°è¿è¿ä¸ªå¾åç人没æç¨å¤ã
éè¦èèçä¸ä»¶äºæ¯ï¼ä½ çå¾çæ¯å¦å¨ä½ çå 容䏿æä¹ï¼æè å®ä»¬çº¯ç²¹æ¯ä¸ºäºè§è§è£ é¥°ï¼æä»¥æ²¡ææä¹ã妿å®ä»¬æ¯è£ 饰æ§çï¼æå¥½å°å®ä»¬å å«å¨é¡µé¢ä¸ä½ä¸º CSS èæ¯å¾åã
夿³¨ï¼è¯·é 读 HTML ä¸çå¾ç å ååºå¼å¾ç 以è·å¾æ´å¤å ³äºå¾ç宿½åæä½³åæ³çä¿¡æ¯ã
å¦æä½ ç¡®å®æ³è¦æä¾é¢å¤çä¸ä¸æä¿¡æ¯ï¼ååºè¯¥å°å
¶æ¾å¨å¾åå¨å´çææ¬ä¸ï¼ææ¾ç½®å¨âæ é¢â title 屿§ä¸ï¼å¦ä¸æç¤ºãå¨è¿ç§æ
åµä¸ï¼å¤§å¤æ°å±å¹é
读å¨ä¼è¯»åºæ¿ä»£ææ¬ï¼æ é¢å±æ§åæä»¶åãæ¤å¤ï¼é¼ æ æ»è¿æ¶ï¼æµè§å¨ä¼å° title çå
容ä½ä¸ºå·¥å
·æç¤ºç形弿¾ç¤ºåºæ¥ã

æä»¬åæ¥çç第åç§æ¹æ³ï¼
<img src="dinosaur.png" aria-labelledby="dino-label" />
<p id="dino-label">The Mozilla red Tyrannosaurus ...</p>
å¨è¿ç§æ
åµä¸ï¼æä»¬ä¸ä½¿ç¨âaltâ屿§ââç¸åï¼æä»¬å·²ç»å°å¾åçæè¿°ä½ä¸ºå¸¸è§ææ¬æ®µè½ç»åºï¼å¹¶ç»åºå®çâidâï¼ç¶å使ç¨âaria-labelledbyâ屿§å¹¶é¾æ¥å°å¯¹åºâidâï¼å®ä½¿å±å¹é
读å¨å°è¯¥æ®µè½ç¨ä½è¯¥å¾åçæ¿ä»£ææ¬/æ ç¾ãå¦æä½ æ³å°ç¸åçææ¬ç¨ä½å¤ä¸ªå¾åçæ ç¾ï¼è¿æ¯ç¹å«æç¨çââè¿æ¯ä½¿ç¨âaltâä¸å¯è½å®ç°çã
夿³¨ï¼âaria-labelledbyâæ¯ WAI-ARIA è§èçä¸é¨åï¼å®å
许å¼å人åå¨å
¶æ è®°ä¸æ·»å é¢å¤çè¯ä¹ï¼ä»¥æé«å±å¹é
读å¨çæ éç¢ãè¦äºè§£æ´å¤å
³äºå®æ¯å¦ä½å·¥ä½çï¼è¯·é
读æä»¬ç WAI-ARIA Basics æç« ã
å ¶ä»æåæ¿ä»£æºå¶
å¾åè¿æå
¶ä»æºå¶å¯ç¨äºæä¾æè¿°æ§æåãä¾å¦ï¼æä¸ä¸ª longdesc 屿§ç¨äºæåå
å«å¾åçæ©å±æè¿°çåç¬ Web ææ¡£ï¼ä¾å¦ï¼
<img src="dinosaur.png" longdesc="dino-info.html" />
è¿å¬èµ·æ¥å个好主æï¼å°¤å
¶æ¯å¯¹äºå大å¾è¡¨è¿æ ·çä¿¡æ¯å¾ï¼å
¶ä¸æå¾å¤ä¿¡æ¯å¯è½å¯ä»¥è¡¨ç¤ºä¸ºå¯è®¿é®çæ°æ®è¡¨ï¼è¯·åé
ä¸ä¸é¨åï¼ã使¯ï¼å±å¹é
读å¨ä¸æ¯ælongdescï¼éå±å¹é
读å¨ç¨æ·å®å
¨æ æ³è®¿é®å
容ãå°é¿æè¿°å
å«å¨ä¸å¾åç¸åç页é¢ä¸ï¼æè
éè¿å¸¸è§é¾æ¥é¾æ¥å°å®å¯è½ä¼æ´å¥½ã
HTML5 å
å«ä¸¤ä¸ªæ°å
ç´ - å<figure> ï¼å®ä»¬åºè¯¥å°æç§å½¢è±¡ï¼å¯ä»¥æ¯ä»»ä½ä¸è¥¿ï¼ä¸ä¸å®æ¯å¾åï¼ä¸æ°åæ é¢ç¸å
³èï¼<figcaption>
<figure>
<img src="dinosaur.png" alt="The Mozilla Tyrannosaurus" />
<figcaption>
A red Tyrannosaurus Rex: A two legged dinosaur standing upright like a
human, with small arms, and a large head with lots of sharp teeth.
</figcaption>
</figure>
ä¸å¹¸çæ¯ï¼å¤§å¤æ°å±å¹é 读å¨ä¼¼ä¹å¹¶æ²¡æå°å¾å½¢æ é¢ä¸ä»ä»¬çå¾å½¢ç¸å ³èï¼ä½æ¯å ç´ ç»æå¯¹ CSS æ ·å¼é常æç¨ï¼å¹¶ä¸å®æä¾äºä¸ç§æ¹æ³å¨æºä»£ç ä¸å°å¾åæ¾ç½®å¨æè¾¹ã
空 alt 屿§
<h3>
<img src="article-icon.png" alt="" />
Tyrannosaurus Rex: the king of the dinosaurs
</h3>
å¯è½ææ¶åå¾å被å å«å¨é¡µé¢ç设计ä¸ï¼ä½å ¶ä¸»è¦ç®çæ¯ç¨äºè§è§è£ 饰ãå¨ä¸é¢ç代ç 示ä¾ä¸ï¼ä½ 伿³¨æå°å¾åçâaltâ屿§ä¸ºç©º - è¿æ¯ä¸ºäºè®©å±å¹é 读å¨è¯å«å¾åï¼ä½ä¸è¯å¾æè¿°å¾åï¼é 读å¨åªæ¯è¯´âå¾åâç类似çè¯å¥ï¼ã
使ç¨ç©ºç½âaltâèä¸å
å«å®çåå æ¯å ä¸ºå¦ææ²¡ææä¾âaltâï¼è®¸å¤å±å¹é
读å¨ä¼å
¬å¸æ´ä¸ªå¾å URLãå¨ä¸é¢ç示ä¾ä¸ï¼å¾åå
å½ä¸å
¶å
³èçæ é¢çè§è§è£
饰ãå¨è¿ç§æ
åµä¸ï¼ä»¥åå¨å¾ååªæ¯è£
饰并䏿²¡æå
容å¼çæ
åµä¸ï¼ä½ åºè¯¥å¨å¾å䏿¾ç½®ä¸ä¸ªç©ºç½çâaltâãå¦ä¸ç§éæ©æ¯ä½¿ç¨ aria role 屿§ role =âpresentationâ - è¿ä¹ä¼é»æ¢å±å¹é
读å¨è¯»åºæ¿ä»£ææ¬ã
夿³¨ï¼å¦æå¯è½çè¯ï¼ä½ åºè¯¥ä½¿ç¨ CSS æ¥æ¾ç¤ºåªæè£ 饰çå¾åã
æ»ç»
ä½ ç°å¨åºè¯¥ç²¾éç¼å大夿°åºåå¯è®¿é®ç HTMLãæä»¬ç WAI-ARIA åºç¡ç¥è¯æç« ä¹å°å¡«è¡¥è¿äºç¥è¯ä¸çä¸äºç©ºç½ï¼ä½æ¬æå·²ç»å ³æ³¨äºæ¤åºç¡ç¥è¯ãæ¥ä¸æ¥ï¼æä»¬å°æ¢ç´¢ CSS å JavaScriptï¼ä»¥åæ éç¢å¦ä½åå ¶å¥½åå½±åã