我们不应该再使用<main>元素了吗?

时间:2015-09-03 18:03:12

标签: html5 semantic-markup

与我的大多数SO问题一样,这个问题源于我无法找到最新的Google搜索结果。

<main>被HTML5.1规范接受以来差不多3年了。它似乎使用起来具有完美的语义意义:

<header></header>
<main></main>
<footer></footer>

但是我看到许多基于语义的网站(如CanIUse CSS-Tricks )只是忽略了元素,而是使用类似的东西:

<header></header>
<div class="main-wrapper">
    <!--no ARIA role, nothing to semantically indicate "main" content-->
</div>
<footer></footer>

我觉得我错过了一些关于每个人如何停止使用<main>以及Google无法帮助我找到对话的对话。该元素是否被认为是不必要的(即客户并不真正解析它)?

现在似乎IE never ended up supporting it(没有填充),但这就是为什么人们不使用它?我见过的相同网站使用div.main-wrapper做了大量的事情仍然需要IE的polyfill。为什么不使用<main>的语义优势,只需要1行JS shiv和display:block

3 个答案:

答案 0 :(得分:3)

答案:您不应该仅仅因为您遇到的其他一些着名网站/开发人员没有使用它而避免使用main元素。

任何人都不知道我知道何时停止使用main或向别人建议他们不应该使用它。

您使用它当然不是要求。但是如果你以一种不会导致W3C验证器发出错误或警告的方式使用它,并且你判断的方式是按照作者的意图传达文档的含义/结构 - 那么就去做吧。这就是它的用途。

答案 1 :(得分:3)

  

(即客户真的不会解析它)?

除IE之外的所有主流浏览器都已实现主要元素的解析/样式和语义映射(role = main),Edge已实现。就新元素的使用而言,3年的时间并不长(虽然它的使用量已经远高于其前几年增加的其他新元素)。随着时间的推移,它的使用正在稳步增长(如果您愿意,可以从http://webdevdata.org获取数据)。

所有主要的屏幕阅读器都支持主要元素语义作为地标导航的一部分。

  

63%的屏幕阅读器用户有时/经常/总是使用地标/区域(所以添加它们,或者我会打你)。 - Bruce Lawson

答案 2 :(得分:1)

我的猜测是鸡肉/鸡蛋。如果客户没有对它做任何特别的事情,那么在网站中使用它并没有多大意义。如果采用率较低,一些客户对此采取任何措施并不重要。我猜这个问题并没有给大多数用户带来足够的痛苦。开发者。