- 浏览: 289497 次
- 性别:
- 来自: 天津
文章分类
最新评论
-
狼子六:
已经开始用了
Java 枚举7常见种用法 -
相约的旋律:
方法一下面的"public static fianl ...
Java 枚举7常见种用法 -
kiddy2012:
...
[转载]程序员装B指南 -
fancy105:
写得很好,简单明了双全面!
Java 枚举7常见种用法 -
he_wen:
请问一下 G1算法是否在线上使用了?
Garbage First(G1) 日志分析工具
昨天在 twitter 上说,怎么忍心把页面写得这么难用?是的,这个世界还有一群人等着我们创建出来的东西,可以让他们的生活能过得更容易呢。比如那些需要读屏软件的用户。作 为一个前端,我们又怎么会忍心呢。之前就一直想写这样的一篇文章,分享一下如何去创造一个可访问性更好的页面。今天的计划里有一条把 2HTML T2ag 和 WCAG标准结合起来。我推荐你这样去写你的 HTML,让某些人的生活可以更容易。
今天想分享的是如何去使用我们的 HTML Tag, 把 WCAG 的标准和语义网的目标进行代码上的体现:
1. 文档声明:<!Doctype>
其实这跟 WCAG 根本上连不上什么直接关系,但为了一个兼容性更好,特别是向后兼容的页面,我推荐你这样写:
<!Doctype html>
2. 链接:<a>
互联网的联几乎可以说是用 <a> 来实现的,作为一个页面最常见的标签。我们应该如何对待呢?
- 为关键链接添加 accesskey
- 除非万不得已,不要去掉 focus 时虚线框
<a href="" title="" accesskey="M" rel=""hidefocus>Link</a>
3. 缩写: <abbr>
对于用 HTML Tag 的正确使用,也是非常重要的,这有利于读屏软件使用者对于页面结构的理解。特别是在 H1,H2,H3 等这些标签的使用,滥用非常容易造成结构费解。当然,使用一般的标签,再利用 CSS 来使视觉上形成对比这也是常人能辨识的。但读屏软件用户呢。当然,这里只是顺带提起需要注意页面标签的使用方法,而 abbr 最重要的应该是应该添加一个 title 属性对缩写进行描述。比如:
<abbr title="Web Developer" >WD</abbr>
4. 大段引用: <blockquote>,一般引用: <cite>
有大段引用的时候,使用 <blockquote>,而行内引用则使用 <cite>,让你的结构更加易读:
<blockquote> 之前就一直想写这样的一篇文章,分享一下如何去创造一个可访问性更好的页面。今天的计划里有一条把 2HTML T2ag 和 WCAG标准结合起来。我推荐你这样去写你的 HTML,让某些人的生活可以更容易。 </blockquote> <p>某A给我印象最深刻的一句话是,<cite>“做前端要有爱。不要动不动就有朩有地对各种人使用咆哮体”</cite>。</p>
5. 删除:<del>
在纸上写东西不能像在计算机上写东西一样,可以用撤销键可以按,但当我们想要强调某些东西是被删除的怎么办?那就是使用 <del> 标签了。比如这样:
<del>HTML上表示强调时,请使用 <b> 标签</del> HTML上表示强调时,请使用 <strong> 标签
效果是这样的:
HTML上表示强调时,请使用 <b> 标签
HTML上表示强调时,请使用 <strong> 标签
6. 定义列表:<dl>
去年带着新人做支付宝前端博客的时候,他们给我印象最深刻的是很喜欢用 <dl>。当时在想,这些同学挺不错的,对语义化的理解还不错。我们还是比较少用到定义列表的。而是使用一般的 <ul> <ol> 这两个。<dl> 也是应该慎用的,最好只使用在某些有“定义”意义的条目,如 w3school 的这个例子,对咖啡和牛奶的定义:
<dl> <dt>Coffee</dt> <dd>- black hot drink</dd> <dt>Milk</dt> <dd>- white cold drink</dd> </dl>
7. 无序/有序列表 <ul>/<ol>
列表,这个对于每个前端来说,都熟悉不过了。因为结构可以非常灵活地进行应用,在导航、列表、Tab 等,都经常要要用到。这个就无须多说了。但有一点还是需要明白的,不要相信什么 <ul>/<ol> 是 <table> 的替代品。在我们常用的 HTML Tags 中,每个标签都有自己的作用,谁都不是谁的替代品。
<ol> <li>Coffee</li> <li>Tea</li> <li>Milk</li> </ol>
8. 表格: <table>
如果是一个表格,那就,就不要用段落来替代,更不要用列表。除非万不得已,并且他们是可以转换的。另外,表格中还有一些需要注意的点:
- 给 <table> 添加 summary 属性,有些表格非常大,并不需要去读完整个
- 添加 <tbody>,如果我没记错,如果没添加的话,浏览器会自动为你添加
- 必要时使用 <col> <colgroup> 来控制表示的栏
<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. 格式化片段 <code>/<pre>
<code> 是指 computer code text, 而 <pre> 是指 preformatted text。<pre> 的范围更广,并且是块状元素,可能被使用来格式化各种文本,特别是代码。使用没有需要特别注意的,主要是语义上的正确使用,比如不要用 <pre> 来代替一般的 <p>。
<code>text-align:center</code> <pre> { ( 1 * 102 ) + ( 9 * 101 ) + ( 3 * 100 ) } </pre>
10. 换行: <br>
在现代网页中,使用 <br> 的情况是非常少的。网页中的留白,一般都是使用 CSS 的 padding 和 margin 来实现。这样更精准,并用更容易控制。现在推荐的用法是,使用到一般的段落 <p> 中做简单的换行,而不是用来控制页面留白。
<p>我是一个段落。<br /> 诗歌都会用换行的。 </p>
11. 分割线: <hr>
<hr> 具有非常好的语义作用。但他的视觉效果很难控制。之前就写过这样的文章关于<hr />在各浏览器中的问题 。一般也都很少用。如果专门为读屏软件使用者提供单独页面的话,或许 <hr> 会大有用处。
<h3>标题一</h3> <p>Lorem Ipsum is ...</p> <hr /> <h3>标题二</h3> <p>This is the entry of... </p>
12. 无语义标签:<div>/<span>
其实 <div>/<span> 这两个标签是有语义的,都是 defines a section in a document。是的,和 HTML5 中的 <section> 其实是一样的。只是,因为搜索引擎的的原因,搜索引擎认为它们是无语义标签,因此他们成了 “无语义” 标签。推荐用法是尽量使用其他来做为页面框架的容器,比如布局、添加额外的视觉效果,而不是段落等的替代品。
<div id="container"> <div id="content"> </div> <div id="sidebar"> <ul> <li><span>God</span>, oh my zsh</span></li> </ul> </div> </div>
13. 段落/标题: <p>,<h1>/<h2>/<h3>…
这几个标签几乎可以说是一个页面标签等级结构中最重要的标签。我们可以用一本书的结构来说明这几个标签,而我们构建一个页面的时候,也应该有这样的一种思想在脑中:
- 书的名称:H1
- 书的每个章节标题: H2
- 章节内的文章标题: H3
- 章节的段落: P
- 小标题/副标题: H4/H5/H6
是的,当然还有引用 <blockquoute>,技术类书中提供的代码 <pre class="code">,一些需要注意点的列表 <ul>,一些方便比较的表格 <table> 等。
<h1>LOGO</h1> <h2>Title</h2> <div class="entry"> <h3>Summary:</h3> <p>lorem ipsum is ...<em>emphasize</em></p> </div>
14. 强调: <em>/<strong>
<em> emphasize 的缩写。而 <strong> 是 strong emphasize。可能很多刚入门前端的同学会对 <em>、<strong>、<cite> 、<i>、<b> 这几个标签的使用拿捏不准。<i> 和 <b> 基本上是被废置的,相当于现在的 <em> 和 <strong>,一般情况下他们对于内容重要性的排序是这样的:strong > em ≈ cite。
<strong>注意:</strong>别使用老掉牙的标签,比如<cite>FONT、CENTER</cite>等,特别是 <em>FONT</em>。
15. 表单项: <input>/<textarea>/<select>
表单项是 HTML 中相对比较复杂的标签,需要注意的点也比较多:
- 需要给每个表单项添加 <label> 对其进行描述,当不能使用 label 时,为表单项添加 title 属性
- 当表单项是必填项的时候,使用 “* “ 符号来标记
- Flash 创建表单项一般是不会生成 <label> 的,请勾上 auto label 那个选项
<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. 图片: <img>
对于图片,盲人看不到。提供 alt 来表示替代文本。告诉他们这是一张什么样的图。
<img src="http://sofish.de/favicon.ico" alt="幸福收藏夹的 favicon" />
17. 框架: <iframe>
尽量避免 <iframe>框架的使用,但当你需要使用的时候,最好提供一个 title 属性对其进行描述。
<iframe src="http://sofish.de" title="幸福收藏夹" /></iframe>
18. 流媒体:<video>/<audio>/<object>/<embed>
媒体也是比较复杂的格式,处理起来比较麻烦。通常我们可以这样做:
- 为视听媒体提供相应的文本,包括相应的场景,比如演讲中的鼓掌等有利有阅读者感知现在气氛的,都应该体现在演讲文本中。其他的依此类推。
- 如果像交响乐这种不能提供具体描述的,可以进行简单的说明
- 如果文本较长,不能在当前页面展示,可以在媒体后提供一个链接到相应替代文本的链接
- 如果媒体中有可能会引起癫痫发作的,应做相应的说明
<audio src="mozart.mp4">莫扎特39号交响曲</audio>
19. 网页标题:<title>
网页中一定要包含标题,并且每个标签应该具有辨识性。比如支付宝中是这样体现的:
<title>联系我 -- 幸福收藏夹</title>
20. 总结
好吧。就先写到这里了。WCAG 并不只是这些简单的 HTML Tags 的用法,语义化的网页也不是一两篇文章能够写完的。慢慢来吧。从最常见的做起,养成好的习惯。回到文章前面的那句话,难道你忍心把页面写得这么难用吗?
原文地址:http://justjavac.iteye.com/blog/1061287
发表评论
-
[转载]为程序员量身定制的12个目标
2012-01-15 22:38 944对程序员 们来说挑战自我非常重要,要么不断创新,要 ... -
[转载]理解 CMS GC 日志
2011-11-22 14:52 1580CMS GC with -XX:+PrintGCDetai ... -
JSP 分页框架 Pager Tag Library使用
2010-08-10 14:43 1769很久没写技术文章了,最近正在学习,把以前的东西总结一下。 最 ... -
解决 jQuery 与 prototype冲突 jQuery与easyvalidation冲突
2010-08-27 10:40 1174看以一篇解决方案,我测试没成功http://www.blogj ... -
[转载]堆和栈的区别
2010-09-07 00:19 823一、预备知识—程序的内存分配 一个由C/C++编译的程序 ... -
kaptcha 简单方便的验证码生成工具
2010-09-11 15:13 1715kaptcha是一个非常实用的验证码生成工具,有了它,你可以生 ... -
jQuery插件shadowbox体验
2010-09-28 00:28 1382以前用的图片展示用的是mootools的一个工具,感觉不错,不 ... -
JavaScript 获取上传文件的本地绝对路径
2010-12-03 16:28 2502一直苦恼于在表单提交时获得上传文件的本地绝对路径。 由于ja ... -
解决jQuery 1.4 json问题
2010-12-21 17:09 921最近用jQuery写了一个小例子, $(functio ... -
hibernate属性配置
2011-06-16 23:25 3075这些属性有的时候很需要,但是记不住,所以做个备忘。 ... -
[转载]毕业奋斗八年成功后有感,给年轻人的10个忠告
2009-07-29 16:06 6481、努力 工作要努 ... -
[转载]年轻人应该知道的71个做饭技巧
2009-09-28 00:04 7891、煮水饺时,在水里放 ... -
[转载]Java开源软件六大帮派
2009-09-28 12:40 732Java 开源软件千千万,就好像一个江湖,有势力的有 ... -
[转载]团队交流技巧,看你在团队中如何?
2009-09-28 19:22 962团队建设,简单讲就是 ... -
[转载]我的十年总结——送给刚毕业的年轻朋友们
2009-10-19 17:21 662昨天在csdn上看到一篇“十年总结”的文章,颇受感动!不为作者 ... -
[转]高并发高流量网站架构
2010-04-30 10:44 674Web2.0的兴起,掀起了互 ... -
[转载]Javascript中最常用的61个经典技巧
2010-10-23 00:33 14131. oncontextmenu="windo ... -
[转载]Java学习推荐书目
2010-11-14 19:03 829一、基础类 1、《Thinking in java》,入门第 ... -
[转载]当项目经理是一种修炼
2010-11-20 15:57 706作为项目经理,最重要的就是带领整个项目团队一起战斗,做好团队建 ... -
jQuery多库共存的三种方法。
2010-12-20 10:29 754jQuery团队为用户提供了 ...
相关推荐
"CSDN博客转载与Markdown、HTML基础知识" CSDN博客转载是一种常见的需求,特别是在需要引用或分享他人的博客内容时。然而,对于不熟悉HTML和Markdown的用户来说,转载CSDN博客可能是一件困难的事情。本文将详细介绍...
老外写的一篇文章:What Beautiful HTML Code Looks Like 如何写出漂亮的HTML代码 感觉写的非常的不错,转载过来,与大家分享一下:ps:原文地址:http://css-tricks.com/what-beautiful-html-code-looks-like/ ...
于是这个简单的批量上传组件就这样做好了,欢迎各位测试和修改。 最后再次提醒各位务必牢记原作者xiaolingzi和其博客地址地址: http://xxling.com/blog/article/75.aspx 转载请注明原作者,修改和使用也不要去掉js...
最近学了一下HTML5和JS文件的批量处理,就抽空自己写了个。 代码编写参考了IBM、CSDN、博客园上的部分文章,在此感谢。 文件大小只有2KB,无需flash、jquery、FileAPI等额外组件。 使用multiple元素,带有文件名称...
【纯js写的一行多图轮播】是一种常见的网页动态效果,主要应用于网站中的图片展示,比如产品介绍、新闻资讯或者个人作品集等。这种轮播方式允许在有限的空间内展示多张图片,并通过自动切换或者用户手动操作来实现...
这是我自己下载后整理的最全面,使用最广泛,被抄袭转载最多的javascript、html资源!!! 1.40种网站常用Javascript技巧 格式txt CSDN 上流传较广泛的较好的版本! 2.初学者很好的参考:HTML标签详尽讲解 格式doc 此为...
没有完美的架构,只有适合的架构,如果你想要有一个完全匹配你需求的框架,那么就自己写一个。很多有实力的公司就是这么做的。 作者:凉风有兴 链接:https://www.jianshu.com/p/233b85895ca6 來源:简书 简书著作...
1. 页面内嵌法:将CSS直接写在`<head>`标签内的`<style>`标签中,这样可以对当前页面进行样式控制。 2. 外部调用法:创建一个`.css`文件,然后在`<head>`中使用`<link>`标签引用它,这样可以实现样式复用,提高代码...
功能不需要太多,简单实用,转载。企业有很多的科室,科室的每个人或多或少都会写一些文档,有些文档领导需要浏览,解决的办法是将编辑的文档打印出来,供领导浏览,或是为了节约企业成本,文档就在人与人这间或部门...
**jQuery表单验证详解** 在Web开发中,表单验证是一项不可或缺的功能,它能确保用户输入的数据符合预期,从而防止无效数据的提交。...通过熟练掌握这些知识点,可以提升你的Web开发技能,使表单验证变得更加得心应手。
该工具是为项目组写的,组成员在开发中必须先格式化 xml 文件后才上传到 svn ,目的是保证风格统一! web 开发中,xml 现在使用的越来越多,良好的书写格式应该是程序员的基本要求,有了这个格式调整工具,应该是...
通过阅读"正则表达式30分钟入门教程.html"和".mht"文件,你可以进一步了解这些概念的实际应用,以及如何在不同场景下编写和使用正则表达式。这些文档可能会提供示例代码、练习和解答常见问题,帮助你快速上手并熟练...
// 教程中的代码将写在这个区域里。 <!-- grid的容器 --> ;height:300px"> </html> ``` #### 三、纯客户端只读列表开发 接下来,我们将详细介绍如何创建一个纯客户端只读列表。 ##### 3.1 数据准备 一个...
提供国人写的强大的html5植物大战僵尸(源码) 写得很棒~占用资源少。 JSPVZ 程序制作进度(2011.1.5) 本程序提供源码由HTML5中文网整理打包下载,该下载包可以使用服务器环境运行,也可以在电脑上双击Index.htm直接...
这个库的设计理念是“写更少的代码,做更多的事情”,这意味着开发者可以使用简短的代码完成复杂的任务,提高了开发效率。 在 jQuery 中,HTML 文档的处理变得更加容易。例如,通过 ID、类或者属性选择器,可以迅速...
网上有一个通用的转码组件,不仅可以转换javascript的,还可以转换html,xml等的特殊字符,许多帖子都转载了它。但是我对它进行了测试,发现有很多错误,或者是函数过期,或者是替换字符串写错,还有对javascript的...
如果你的博客中有很多质量比较高的好文章,那么它被转载的概率是非常的大,文章被转载是我们所期望的,可文章被转载后被稍加修改,就变成别人的文章了,虽然,我们对于这样的行为没有十分有效的办法,但是,我们最...
CVAVR入门指导,针对初用cvavr的人写的一个教程,原创。转载请说明http://89c51.5d6d.com/thread-1319-1-1.html
标题中的“articles:放一些我自己写的文章,转载前请先与我联系征得我的同意”表明这是一份包含作者原创文章的压缩包文件。作者强调了版权问题,要求任何想要转载文章的人需事先获得其许可。这涉及到知识产权、版权...