我正在运行lynx
来测试我必须做的一些HTML,因为考虑到了可访问性。我猜想,如果在Lynx看起来很漂亮,整个屏幕阅读器,蹩脚的手机和其他东西都可以,甚至是大多数古老的硬件。
在某些情况下,我使用了一个快捷方式,以防我想要在支持和启用JS的常规情况下一次性清除所有静态HTML,包括将所有静态HTML标记嵌套在标识的{{1标签被消灭。
后来我意识到在我的div
编译中导致了行为改变:
lynx
浏览(也在http://driedleav.es/so_20170729/with_div_inside.html中)将第一个标题移动到左侧:
在http://driedleav.es/so_20170729/without_div_inside.html中浏览此另一个,将第一个标题居中:
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta name=viewport content="width=device-width">
<title>Title</title>
</head>
<body>
<div id="whatever">
<header>
<h1>First heading</h1>
</header>
<main>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua.
</p>
</main>
<footer>
<hr />
<p>
Footer.
</p>
</footer>
</div>
</body>
</html>
在本地主机的WebKit软件中显示行为时,无法发现任何行为差异。
为了标准,兼容性和可访问性,我是否应该放弃<!DOCTYPE html>
<html lang="en-US">
<head>
<meta name=viewport content="width=device-width">
<title>Title</title>
</head>
<body>
<header>
<h1>First heading</h1>
</header>
<main>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua.
</p>
</main>
<footer>
<hr />
<p>
Footer.
</p>
</footer>
</body>
</html>
标记下使用的div
标记;代价是开发更大,下载更大,JS代码?
我的Lynx编译错误了吗?
我的WebKit编辑有错误吗?
答案 0 :(得分:1)
通过插入div
,lynx会考虑创建一个隐式部分,使h1
成为该部分的标题,而不再是网页的标题。
您应该注意,将<div id="whatever">
替换为<main id="whatever">
会得到预期的结果。
答案 1 :(得分:0)
为了标准,兼容性和可访问性,我是否应该放弃在body标签下使用的div标签;代价是开发更大,下载更大,JS代码?
为了标准,可能不是。为了兼容性,如果想支持特定版本的lynx
,则绝对是肯定的。
检查这些,是相同的来源,但连续的多级标题是唯一的区别。
http://driedleav.es/so_20170729/with_div_inside_.html表现得像这样:
http://driedleav.es/so_20170729/without_div_inside_.html表现得像这样:
通过浏览更多的测试文档,我发现行为一直在增加缩进级别,这似乎比看起来根本不做任何事情更为明智。
我的Lynx编译错误吗?
因为WebKit可能100%兼容,可能是的。
我的WebKit编辑有错误吗?
可能不是,因为它是一个由zillions使用的大型和成熟的项目,以及臭虫的眼球定律。