我前几天发布/发布了一个关于<div>
标签的使用的半开玩笑的问题。
然后我开始了一个小的对话。然后我开始思考。为什么开发人员不经常使用<main>
?
“为什么”
昨天我审核了一个极为无法访问的教育平台时,我总结了我的可访问性审计职业。我发送回客户的文档超过100页。那很多。不是最多的,但是很多。通常,对于我作为独奏顾问进行的任何高级审核的100页是标准的。
我看到了<header>
和<footer>
元素的用法,但在那里却是<main>
的迹象。使用HTML5的元素是:
<header>
<nav>
<section>
<article>
<aside>
<footer>
毫无目光的<main>
。
我的意思是没有找到该元素的迹象。
“什么”
是恐惧吗?我的意思是,我知道这确实不是恐惧,但是缺乏教育(是)还是缺乏了解语义HTML以及使用语义HTML对没有语义含义的元素的好处?
我过去曾经问过很多回复
没有时间处理HTML。
现在没有足够的时间来处理它。
是X框架,我无法更改。 (如果是开源的,则可以)。
这是习惯,我只是那样做。
什么是语义html?
我正在使用本机应用,而不是混合/网络应用。
这些是很多原因之一。我明白了,但是我20年前得到了它。 10年前。 5年前。但是在2023年?现在,自2008年(15年前)以来,HTML5已经出现了,开发人员应该知道对HTML5。
他们是否知道是一回事。他们应该。你应该。他们是在乎还是在乎您是另一个。你们都应该在乎。
我的意思是,如果您使用其他HTML5元素,为什么要省略<main>
?那对我说,无论如何,如果您知道的话,您会很懒惰,如果您对HTML5没有教育,那么您不会进行研究。 <main>
是众所周知的元素之一。
所以呢?大事。
这些“地标”对可访问性有影响。如果您曾经阅读过我的大部分文章,那么它们就是可访问性的。使用预期的HTML5地标是通过使屏幕读取器技术和其他辅助技术(例如键盘导航)访问页面结构来帮助残疾人。
当我在框架中创建一个新项目时,当我看到这个时:
<!DOCTYPE html>
<html lang="">
<head>
...
</head>
<body>
<div id="app"></div>
</body>
</html>
我倾向于在进行可访问性审核时问:“为什么不使用<main>
?”只有当您必须提交问题并要求将<div>
更改为<main>
时,只有它是一个网络或混合应用程序,但这不是我期望发生的事情。
我想看到的更多是这样,如果适用的话:
<!DOCTYPE html>
<html lang="">
<head>
...
</head>
<body>
<main id="app"></main>
</body>
</html>
好处
-
跳到内容链接。当有人使用键盘导航或想跳过重复的内容时,他们可以轻松跳到
#main
内容区域。 -
这是新鲜,新颖和酷的包装师!直到2008年,我将经常使用
<div id="wrapper">
,然后在项目中更频繁地使用HTML5时,我开始使用<main id="wrapper">
或Whate。这是一个地标,为什么不使用它? -
阅读器模式在将内容转换为阅读器视图时寻找
<main>
元素以及标题和内容结构。 -
<main>
在维护和代码可读性方面容易得多。您可以在那碗Div Div杂烩中的广阔的Divs中的<div>
来视觉上发现<main>
元素。 -
使用
< /li><main>
也可能在文件中保存一些字节(CSS或其他方式),因为您可以在样式表中使用main
而不是使用类或ID(例如.main
或#main
)。 -
没有
<main>
辅助技术无法创建页面内容的准确轮廓(可访问性树)。
我确定我没有列出更多,但事实是,让我们面对现实吧,如果您要使用所有其他HTML5地标,只需在网络或Hybrid Web中使用main
Landmark应用程序或您正在撰写网页。
就是这样。不要害怕<main>
,如果您还没有,请使用它在项目中适用。
如果您不确定如何使用main
,请自我教育自己。您可以用于研究任何HTML或CSS的read the spec或MDN docs which should be the de facto resource。
我知道在某些情况下是一个<div>
,我的意思是毫无意义的。我知道,我知道,我明白了。但是...
如果您可以使用<main>
,请将其放入那里,然后使体验更容易获得。