比如那些需要读屏软件的用户。作为一个前端,我们又怎么会忍心呢。之前就一直想写这样的一篇文章,分享一下如何去创造一个可访问性更好的页面。今天的计划里有一条把 HTML Tag 和 WCAG标准结合起来。我推荐你这样去写你的 HTML,让某些人的生活可以更容易。
今天想分享的是如何去使用我们的 HTML Tag, 把 WCAG 的标准和语义网的目标进行代码上的体现:
其实这跟 WCAG 根本上连不上什么直接关系,但为了一个兼容性更好,特别是向后兼容的页面,我推荐你这样写:
<!Doctype html>
互联网的联几乎可以说是用 来实现的,作为一个页面最常见的标签。我们应该如何对待呢?
<a href="" title="" accesskey="M" rel="" <del>hidefocus</del>>Link</a>
对于用 HTML Tag 的正确使用,也是非常重要的,这有利于读屏软件使用者对于页面结构的理解。特别是在 H1,H2,H3 等这些标签的使用,滥用非常容易造成结构费解。当然,使用一般的标签,再利用 CSS 来使视觉上形成对比这也是常人能辨识的。但读屏软件用户呢。当然,这里只是顺带提起需要注意页面标签的使用方法,而 abbr 最重要的应该是应该添加一个 title 属性对缩写进行描述。比如:
<abbr title="Web Developer" >WD</abbr>
,一般引用:
有大段引用的时候,使用
,而行内引用则使用 ,让你的结构更加易读:<blockquote> 之前就一直想写这样的一篇文章,分享一下如何去创造一个可访问性更好的页面。今天的计划里有一条把 HTML Tag 和 WCAG标准结合起来。我推荐你这样去写你的 HTML,让某些人的生活可以更容易。 </blockquote> <p>某A给我印象最深刻的一句话是,<cite>“做前端要有爱。不要动不动就有朩有地对各种人使用咆哮体”</cite>。</p>로그인 후 복사5. 删除:
在纸上写东西不能像在计算机上写东西一样,可以用撤销键可以按,但当我们想要强调某些东西是被删除的怎么办?那就是使用
标签了。比如这样:<del>HTML上表示强调时,请使用 <b> 标签</del> HTML上表示强调时,请使用 <strong> 标签로그인 후 복사效果是这样的:
HTML上表示强调时,请使用 标签
HTML上表示强调时,请使用 标签6. 定义列表:
去年带着新人做支付宝前端博客的时候,他们给我印象最深刻的是很喜欢用
。当时在想,这些同学挺不错的,对语义化的理解还不错。我们还是比较少用到定义列表的。而是使用一般的
这两个。
也是应该慎用的,最好只使用在某些有“定义”意义的条目,如 w3school 的这个例子,对咖啡和牛奶的定义:
<dl> <dt>Coffee</dt> <dd>- black hot drink</dd> <dt>Milk</dt> <dd>- white cold drink</dd> </dl>로그인 후 복사7. 无序/有序列表
/
列表,这个对于每个前端来说,都熟悉不过了。因为结构可以非常灵活地进行应用,在导航、列表、Tab 等,都经常要要用到。这个就无须多说了。但有一点还是需要明白的,不要相信什么
/
是
的替代品。在我们常用的 HTML Tags 中,每个标签都有自己的作用,谁都不是谁的替代品。
<ol> <li>Coffee</li> <li>Tea</li> <li>Milk</li> </ol>로그인 후 복사8. 表格:
如果是一个表格,那就,就不要用段落来替代,更不要用列表。除非万不得已,并且他们是可以转换的。另外,表格中还有一些需要注意的点:
- 给
添加 summary 属性,有些表格非常大,并不需要去读完整个
- 添加 ,如果我没记错,如果没添加的话,浏览器会自动为你添加
- 必要时使用
来控制表示的栏 <table summary="sofish's blog status"> <thead> <tr> <th>DATE</th> <th>IP</th> <th>PV</th> </tr> </thead> <tbody> <tr> <td>2011.3.11</td> <td>3000</td> <td>8000</td> </tr> </tbody> </table>로그인 후 복사9. 格式化片段
/
</h3> <p><code> 是指 computer code text, 而 <pre class="brush:php;toolbar:false"> 是指 preformatted text。<pre class="brush:php;toolbar:false"> 的范围更广,并且是块状元素,可能被使用来格式化各种文本,特别是代码。使用没有需要特别注意的,主要是语义上的正确使用,比如不要用 <pre class="brush:php;toolbar:false"> 来代替一般的 <p>。</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="code_bg"><code>text-align:center</code> <pre class="brush:php;toolbar:false"> { ( 1 * 10<sup>2 </sup>) + ( 9 * 10<sup>1 </sup>) + ( 3 * 10<sup>0 </sup>) }로그인 후 복사10. 换行:
在现代网页中,使用
的情况是非常少的。网页中的留白,一般都是使用 CSS 的 padding 和 margin 来实现。这样更精准,并用更容易控制。现在推荐的用法是,使用到一般的段落中做简单的换行,而不是用来控制页面留白。
<p>我是一个段落。<br /> 诗歌都会用换行的。 </p>로그인 후 복사11. 分割线:
具有非常好的语义作用。但他的视觉效果很难控制。之前就写过这样的文章关于
在各浏览器中的问题。一般也都很少用。如果专门为读屏软件使用者提供单独页面的话,或许
会大有用处。<h3>标题一</h3> <p>Lorem Ipsum is ...</p> <hr /> <h3>标题二</h3> <p>This is the entry of... </p>로그인 후 복사12. 无语义标签:
/其实
/ 这两个标签是有语义的,都是 defines a section in a document。是的,和 HTML5 中的其实是一样的。只是,因为搜索引擎的的原因,搜索引擎认为它们是无语义标签,因此他们成了 “无语义” 标签。推荐用法是尽量使用其他来做为页面框架的容器,比如布局、添加额外的视觉效果,而不是段落等的替代品。 <div id="container"> <div id="content"> </div> <div id="sidebar"> <ul> <li><span>God</span>, oh my zsh</span></li> </ul> </div> </div>로그인 후 복사13. 段落/标题:
,
/
/
…
这几个标签几乎可以说是一个页面标签等级结构中最重要的标签。我们可以用一本书的结构来说明这几个标签,而我们构建一个页面的时候,也应该有这样的一种思想在脑中:
- 书的名称:H1
- 书的每个章节标题: H2
- 章节内的文章标题: H3
- 章节的段落: P
- 小标题/副标题: H4/H5/H6
是的,当然还有引用
,技术类书中提供的代码 ,一些需要注意点的列表 <ul>,一些方便比较的表格 <table> 等。</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="code_bg"><h1>LOGO</h1> <h2>Title</h2> <div class="entry"> <h3>Summary:</h3> <p>lorem ipsum is ...<em>emphasize</em></p> </div>로그인 후 복사14. 强调: /
emphasize 的缩写。而 是 strong emphasize。可能很多刚入门前端的同学会对 、、 、、 这几个标签的使用拿捏不准。 和 基本上是被废置的,相当于现在的 和 ,一般情况下他们对于内容重要性的排序是这样的:strong > em ≈ cite。
<strong>注意:</strong>别使用老掉牙的标签,比如<cite>FONT、CENTER</cite>等,特别是 <em>FONT</em>。로그인 후 복사15. 表单项: /
表单项是 HTML 中相对比较复杂的标签,需要注意的点也比较多:
- 需要给每个表单项添加
- 当表单项是必填项的时候,使用 “*“ 符号来标记
- Flash 创建表单项一般是不会生成
<form method="post" action="http://sofish.de"> <fieldset><legend>My Form</legend> <label for="firstname">* First name:</label> <input type="text" id="firstname" /> <label for="speech">Say something:</label> <textarea id="speech" /> </textare> <input type="submit" value="submit" title="submit button" /> </fieldset> </form>로그인 후 복사16. 图片:
对于图片,盲人看不到。提供 alt 来表示替代文本。告诉他们这是一张什么样的图。
<img src="http://sofish.de/favicon.ico" alt="幸福收藏夹的 favicon" />로그인 후 복사17. 框架:
尽量避免
<iframe src="http://sofish.de" title="幸福收藏夹" /></iframe>로그인 후 복사18. 流媒体:
媒体也是比较复杂的格式,处理起来比较麻烦。通常我们可以这样做:
- 为视听媒体提供相应的文本,包括相应的场景,比如演讲中的鼓掌等有利有阅读者感知现在气氛的,都应该体现在演讲文本中。其他的依此类推。
- 如果像交响乐这种不能提供具体描述的,可以进行简单的说明
- 如果文本较长,不能在当前页面展示,可以在媒体后提供一个链接到相应替代文本的链接
- 如果媒体中有可能会引起癫痫发作的,应做相应的说明
<audio src="mozart.mp4">莫扎特39号交响曲</audio>로그인 후 복사19. 网页标题:
网页中一定要包含标题,并且每个标签应该具有辨识性。比如支付宝中是这样体现的:
<title>联系我 -- 幸福收藏夹</title>로그인 후 복사20. 总结
好吧。就先写到这里了。WCAG 并不只是这些简单的 HTML Tags 的用法,语义化的网页也不是一两篇文章能够写完的。慢慢来吧。从最常见的做起,养成好的习惯。回到文章前面的那句话,难道你忍心把页面写得这么难用吗?
관련 라벨:원천:php.cn이전 기사:HTML 페이지에서 일반적으로 사용되는 몇 가지 작은 방법으로 HTML/Xhtml_웹 페이지 제작을 구성합니다. 다음 기사:입력타입 정의방법=파일스타일_HTML/Xhtml_웹페이지 제작본 웹사이트의 성명본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.저자별 최신 기사
2024-10-22 09:46:29 2024-10-13 13:53:41 2024-10-12 12:15:51 2024-10-11 22:47:31 2024-10-11 19:36:51 2024-10-11 15:50:41 2024-10-11 15:07:41 2024-10-11 14:21:21 2024-10-11 12:59:11 2024-10-11 12:17:31최신 이슈PX가 REM 오류로 자동 변환 <style>html { 글꼴 크기: calc(100vw / 3.75); }body { 글꼴 크기: 0.16rem; }&l...에서 2024-04-16 09:34:16004687페이지가 갑자기 CSS나 부트스트랩을 가져올 수 없습니다. 그래서 저는 페이지를 개발 중입니다. 어제 일부 작업을 했는데 잘 작동했고, 오늘은 나머지 작업을 계속했는데 모든 것이 괜찮습니다. 일반 HTML 페이지로 열려고...에서 2024-04-06 21:58:0401800CSS에서 페이지 하단의 신비한 공백을 해결하는 방법 Bootstrap과 D3를 사용하여 간단한 웹페이지를 구축하려고 하는데 하단의 공백을 모두 없애는 방법을 모르겠습니다. 나는 그것을 제거하고 싶다. 본문과 HTM...에서 2024-04-06 20:22:1501454문자열을 HTML 코드(배열에서 생성됨)로 바꾸는 최상위 방법 다음과 같은 문자열이 주어지면...$htmlPattern="Usernameis:#name#andusercompanyis#company#";하위 ...에서 2024-04-06 17:40:4102410관련 주제더>