位置:首页 > 软件操作教程 > 编程开发 > HTML > 问题详情

HTML5 使用 role

提问人:刘团圆发布时间:2020-11-20

    ■知识点

    role是HTML5新增属性,其作用是告诉Accessibility类应用(如屏幕阅读器等)当前元素所扮演的角色,主要是供残疾人使用。使用role可以增强文本的可读性和语义化。

    在HTML5元素内,标签本身就是有语义的,因此role作为可选属性使用,但是在很多流行的框架 (如Bootstrap)中都很重视类似的属性和声明,目的是为了兼容老版本的浏览器(用户代理)。

    role属性主要应用于文档结构和表单中。例如,设置输入密码框,对于正常人可以用placaholder提示输入密码,但是对于残障人士是无效的,这个时候就需要role了。另外,在老版本的浏览器中,由于不支持HTML5标签,所以有必要使用role属性。

    例如,下面代码告诉屏幕阅读器,此处有一个复选框,且己经被选中。

    <div role="checkbox" aria-checked= "checked"><input type="checkbox" checked></div>

    下面是常用的role角色值。 

    role="banner"(横幅)

    面向全站的内容,通常包含网站标志、网站赞助者标志、全站搜索工具等。横幅通常显示在页面的顶端,而且通常横跨整个页面的宽度。

    使用方法:将其添加到页面级的header元素,每个页面只用一次。 

    role="navigation"(导航)

    文档内不同部分或相关文档的导航性元素(通常为链接)的集合。

    使用方法:与nav元素是对应关系。应将其添加到每个nav元素,或其他包含导航性链接的容器。这个角色可在每个页面上使用多次,但是同nav—样,不要过度使用该属性。 

    role="main"(主体)

    文档的主要内容。

    使用方法:与main元素是对应关系。最好将其添加到<main>#签中,也可以添加到其他表示主体内容的元素(可能是div)中。在每个页面仅使用一次。 

    role="complementary"(补充性内容)

    文档中作为主体内容补充的支撑部分。它对区分主体内容是有意义的。

    使用方法:与aside元素是对应关系。应将其添加到aside或div元素(前提是该div仅包含补充性内容)。可以在一个页面里包含多个complementary角色,但不要过度使用。

    role="contentinfo"(内容信息)

    包含关于文档信息的大块、可感知区域。这类信息的例子包括版权声明和指向隐私权声明的链接等。

    使用方法:将其添加至整个页面的页脚(通常为footer元素)。每个页面仅使用一次。

    ■实例设计

    下面的代码演示了文档结构中如何应用role。

<!--开始页面容器-->

<div class="container">

    <header role="banner">

        <nav role="navigation"> [包含多个链接的列表]</nav>

    </header>

    <!—应用CSS后的第一栏-->

    <main role="main">

        <article></article>

        <article></article>

        [其他区块]

    </main>

    <!--结束第一栏-->

    <!--应用CSS后的第二栏-->

    <div class="sidebar">

        <aside role="complementary"x/aside>

        <aside role="complementary"x/aside>

        [其他区块]

    </div>

    <!--结束第二栏-->

    <footer role=" con tent inf o"x/footer>

</div>

<!--结束页面容器-->

    对表单元素来说,form角色是多余的;search用于标记搜索表单;application则属于高级用法。当然,不要在页面上过多地使用地标角色。过多的role角色会让屏幕阅读器用户感到累赘,从而降低role的作用,影响整体体验。

继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部