这样去写你的HTML

昨天在 twitter 上说,怎么忍心把页面写得这么难用?是的,这个世界还有一群人等着我们创建出来的东西,可以让他们的生活能过得更容易呢。比如那些需要读屏软件的用户。作为一个前端,我们又怎么会忍心呢。之前就一直想写这样的一篇文章,分享一下如何去创造一个可访问性更好的页面。今天的计划里有一条把HTMLTag 和 WCAG标准结合起来。我推荐你这样去写你的HTML,让某些人的生活可以更容易。

今天想分享的是如何去使用我们的 HTML Tag, 把 WCAG 的标准和语义网的目标进行代码上的体现:

1. 文档声明:

其实这跟 WCAG 根本上连不上什么直接关系,但为了一个兼容性更好,特别是向后兼容的页面,我推荐你这样写:

  
 
 
 

2. 链接:

互联网的联几乎可以说是用 来实现的,作为一个页面最常见的标签。我们应该如何对待呢?

(1)为关键链接添加 accesskey

(2)除非万不得已,不要去掉 focus 时虚线框

  
 
 
 
  1. Link

3. 缩写:

对于用 HTML Tag 的正确使用,也是非常重要的,这有利于读屏软件使用者对于页面结构的理解。特别是在 H1,H2,H3 等这些标签的使用,滥用非常容易造成结构费解。当然,使用一般的标签,再利用 CSS 来使视觉上形成对比这也是常人能辨识的。但读屏软件用户呢。当然,这里只是顺带提起需要注意页面标签的使用方法,而 abbr 最重要的应该是应该添加一个 title 属性对缩写进行描述。比如:

  
 
 
 
  1. WD

4. 大段引用:

,一般引用:

有大段引用的时候,使用

,而行内引用则使用 ,让你的结构更加易读:

  
 
 
 
  1.     之前就一直想写这样的一篇文章,分享一下如何去创造一个可访问性更好的页面。今天的计划里有一条把 HTML Tag 和 WCAG标准结合起来。我推荐你这样去写你的 HTML,让某些人的生活可以更容易。
  • 某A给我印象最深刻的一句话是,“做前端要有爱。不要动不动就有朩有地对各种人使用咆哮体”

  • 5. 删除:

    在纸上写东西不能像在计算机上写东西一样,可以用撤销键可以按,但当我们想要强调某些东西是被删除的怎么办?那就是使用 标签了。比如这样:

      
     
     
     
    1. HTML上表示强调时,请使用 <b> 标签
    2. HTML上表示强调时,请使用 <strong> 标签

    效果是这样的:

    HTML上表示强调时,请使用 标签

    6. 定义列表:

    去年带着新人做支付宝前端博客的时候,他们给我印象最深刻的是很喜欢用

    。当时在想,这些同学挺不错的,对语义化的理解还不错。我们还是比较少用到定义列表的。而是使用一般的
        这两个。
        也是应该慎用的,最好只使用在某些有“定义”意义的条目,如 w3school 的这个例子,对咖啡和牛奶的定义:

          
         
         
         
        1.   
          Coffee
        2.     
          - black hot drink
        3.   
          Milk
        4.     
          - white cold drink

      7. 无序/有序列表

        /

          列表,这个对于每个前端来说,都熟悉不过了。因为结构可以非常灵活地进行应用,在导航、列表、Tab 等,都经常要要用到。这个就无须多说了。但有一点还是需要明白的,不要相信什么

            /
              是 的替代品。在我们常用的 HTML Tags 中,每个标签都有自己的作用,谁都不是谁的替代品。

                
               
               
               
                1.   
                2. Coffee
                3.   
                4. Tea
                5.   
                6. Milk

              8. 表格:

              如果是一个表格,那就,就不要用段落来替代,更不要用列表。除非万不得已,并且他们是可以转换的。另外,表格中还有一些需要注意的点:

              (1)给

              添加 summary 属性,有些表格非常大,并不需要去读完整个

              (2)添加

              ,如果我没记错,如果没添加的话,浏览器会自动为你添加

              (3)必要时使用

              来控制表示的栏

                
               
               
               
              1.     
            1.         
            2.             
            3.             
            4.             
            5.         
            6.     
            7.     
            8.         
            9.             
            10.             
            11.             
            12.         
            13.     
            14. DATE IP PV
              2011.3.11 3000 8000

            9. 格式化片段 /

            是指 computer code text, 而

             是指 preformatted text。
             的范围更广,并且是块状元素,可能被使用来格式化各种文本,特别是代码。使用没有需要特别注意的,主要是语义上的正确使用,比如不要用 
             来代替一般的 

              
             
             
             
            1. text-align:center
            2. { ( 1 * 102 ) + ( 9 * 101 ) + ( 3 * 100 ) }

        10. 换行:

        在现代网页中,使用
        的情况是非常少的。网页中的留白,一般都是使用 CSS 的 padding 和 margin 来实现。这样更精准,并用更容易控制。现在推荐的用法是,使用到一般的段落

        中做简单的换行,而不是用来控制页面留白。

          
         
         
         
        1. 我是一个段落。

        2. 诗歌都会用换行的。

        11. 分割线:



        具有非常好的语义作用。但他的视觉效果很难控制。之前就写过这样的文章关于
        在各浏览器中的问题。一般也都很少用。如果专门为读屏软件使用者提供单独页面的话,或许
        会大有用处。

          
         
         
         
        1. 标题一

        2. Lorem Ipsum is ...

        3. 标题二

        4. This is the entry of... 

        12. 无语义标签:

        /

        其实

        / 这两个标签是有语义的,都是 defines a section in a document。是的,和 HTML5 中的
        其实是一样的。只是,因为搜索引擎的的原因,搜索引擎认为它们是无语义标签,因此他们成了 “无语义” 标签。推荐用法是尽量使用其他来做为页面框架的容器,比如布局、添加额外的视觉效果,而不是段落等的替代品。

          
         
         
         
        1.     
        2.     
      •     
      •         
        •             
        • God, oh my zsh
        •         
      •     

    13. 段落/标题:

    ,

    /

    /

    这几个标签几乎可以说是一个页面标签等级结构中最重要的标签。我们可以用一本书的结构来说明这几个标签,而我们构建一个页面的时候,也应该有这样的一种思想在脑中:

    (1)书的名称:H1

    (2)书的每个章节标题: H2

    (3)章节内的文章标题: H3

    (4)章节的段落: P

    (5)小标题/副标题: H4/H5/H6

    是的,当然还有引用 ,技术类书中提供的代码

    ,一些需要注意点的列表 
      ,一些方便比较的表格 等。

        
       
       
       
      1. LOGO

      2. Title

      3.     

        Summary:

      4.     

        lorem ipsum is ...emphasize

      14. 强调: /

      emphasize 的缩写。而 是 strong emphasize。可能很多刚入门前端的同学会对 这几个标签的使用拿捏不准。 基本上是被废置的,相当于现在的 ,一般情况下他们对于内容重要性的排序是这样的:strong > em ≈ cite。

      注意:别使用老掉牙的标签,比如FONT、CENTER等,特别是 FONT

      15. 表单项: /