与我的大多数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
?
答案 0 :(得分:3)
答案:您不应该仅仅因为您遇到的其他一些着名网站/开发人员没有使用它而避免使用main
元素。
任何人都不知道我知道何时停止使用main
或向别人建议他们不应该使用它。
您使用它当然不是要求。但是如果你以一种不会导致W3C验证器发出错误或警告的方式使用它,并且你判断的方式是按照作者的意图传达文档的含义/结构 - 那么就去做吧。这就是它的用途。
答案 1 :(得分:3)
(即客户真的不会解析它)?
除IE之外的所有主流浏览器都已实现主要元素的解析/样式和语义映射(role = main),Edge已实现。就新元素的使用而言,3年的时间并不长(虽然它的使用量已经远高于其前几年增加的其他新元素)。随着时间的推移,它的使用正在稳步增长(如果您愿意,可以从http://webdevdata.org获取数据)。
所有主要的屏幕阅读器都支持主要元素语义作为地标导航的一部分。
63%的屏幕阅读器用户有时/经常/总是使用地标/区域(所以添加它们,或者我会打你)。 - Bruce Lawson
答案 2 :(得分:1)
我的猜测是鸡肉/鸡蛋。如果客户没有对它做任何特别的事情,那么在网站中使用它并没有多大意义。如果采用率较低,一些客户对此采取任何措施并不重要。我猜这个问题并没有给大多数用户带来足够的痛苦。开发者。