0

如果我正在寻找良好的 HTML5 语义实践,以及 CEO 的优化代码。将画布放在标题中,效果会很差吗?

我的意思是,这个:

 <h1>
        <span> Main Title </span>
        <canvas></canvas>
    </h1>

    ... some content... 

    <h2>
        <span> A article </span>
        <canvas></canvas>
    </h2>

    ...

取而代之的是:

<h1>
    <span> Main Title </span>
</h1>
<canvas></canvas>

... some content... 

<h2>
    <span> A article </span>
</h2>
<canvas></canvas>

...
4

3 回答 3

3

画布应该在标题之外。

于 2013-11-18T17:38:13.447 回答
1

这个问题与“Should imgbe put into h1?”没有什么不同,甚至与“Should the word "foobar" is put into ?”没有什么不同h1。→ 这取决于您的内容。

代表内容canvas,通常是图像。如果此图像是标题的一部分,请将 放在canvas标题中。如果此图像标题描述,请不要将其放在标题中。

不要忘记包含后备内容,例如<canvas><!-- fallback content --></canvas>. 此后备内容将成为标题的一部分(对于较旧的用户代理、屏幕阅读器、搜索引擎……)。如果它在标题中没有意义,那么一开始canvas就不应该在那里。


请注意,canvasHTML5 规范似乎有一个相关段落:

canvas当有更合适的元素可用时,作者不应在文档中使用该元素。例如,使用canvas元素来呈现页面标题是不合适的:如果标题的期望呈现图形密集,则应使用适当的元素(通常h1)进行标记,然后使用 CSS 和支持技术(如 XBL)设置样式。

但是这个例子假设人们会使用canvas 而不是适当的元素。

于 2013-11-19T11:17:54.547 回答
0

我认为 2010 年的这个 StackOverflow 问题与此处相关: 用徽标图像替换 H1 文本:SEO 和可访问性的最佳方法?

我还认为,如果您想在 <h1> 标记等中使用 canvas 元素,您确实需要在 canvas 标记中包含一个 alt 属性来解释画布显示的内容,并且还需要在 span 中包含 alt 属性文本( ?) canvas 标签内的标签,适用于那些不支持画布的浏览器。

于 2013-11-18T18:08:10.760 回答