W3C 学校声明“类型属性指定链接文档的 MIME 类型”并作为<a href="http://www.w3schools.com" type="text/html">W3Schools</a>
示例提供。如果我更改text/html
为application/zip
标题accept
字段不更改。
规范中的解释还指出该属性是“纯粹的建议”。这意味着,浏览器可以简单地忽略它吗?
它会期望,该属性反映在“接受”标题字段中。
规范中没有任何内容表明 UA 在跟随链接时必须更改Accept
标头以匹配type
属性。它所说的只是 UA 不能依赖type
来确定要检索的资源的类型。
该
type
属性(如果存在)给出链接资源的 MIME 类型。这纯粹是建议性的。该值必须是有效的 MIME 类型。用户代理不得认为类型属性具有权威性——在获取资源时,用户代理不得使用包含在资源链接中的元数据来确定其类型。
正如它所说,它纯粹是建议性的,用户代理不能认为它具有权威性。换句话说,它甚至不能保证它是正确的,而只是一个提示。我认为这纯粹是基于实用性,因为链接很快就会变得陈旧;链接不能指示链接到资源的内容。没有关于用户代理应该如何处理该属性的其他规范。例如,用户代理可以使用它来直观地向用户指出该链接将(可能)指向 PDF 文件。我不知道现在这样做的用户代理。该属性没有任何其他指定用途,因此也不应更改Accept
标题。
type 属性对于脚本和 HTML5 音频/视频非常重要。如果您通过 HTML5 JavaScript API 访问音频/视频(例如,当用户玩游戏时启动音频),如果浏览器无法播放指定为音频/源的任何文件,则 JavaScript 将严重失败视频节点。
使用 JavaScript,您可以在尝试访问媒体之前检查浏览器是否能够播放媒体,但您不仅必须知道 MIME 类型,还必须知道媒体文件中使用的编解码器,而根据文件扩展名。
这就是 type 属性发挥作用的地方,JavaScript 可以从 type 属性获取该信息,然后查询浏览器是否能够播放该类型的媒体。
媒体播放时服务器发送的 MIME 类型仍然必须正确,您无法使用 type 属性来补偿服务器上不正确的 MIME 类型,无论是 HTML5 媒体还是该属性所在的任何其他标签用过的。