上下文:我不是任何类型的网络开发人员或程序员,我使用屏幕阅读器。
我在一些我想访问的网站上使用可访问性评估工具,但是,这些网站存在一些可访问性问题。
通过一些谷歌搜索,我发现使用
<HTML lang='en'></html>
(例如英语)来指定单一网页语言相当容易。
在具有数百个独立页面的整个网站上实施此操作有多容易?这是一个非常模糊的问题,没有链接到具体网站。例如,一个汽车网站,针对各个汽车有一个单独的页面,每个页面缺少指定的语言。自动指定所有语言是否相当简单,还是必须为每一页手动复制/粘贴
<HTML lang='en'></html>
?或者它是否在很大程度上取决于网站的 HTML 结构?等等
您可以在站点范围内定义内容语言,而无需使用 HTTP 标头修改 HTML:
Content-Language: de-DE
WCAG 中对此进行了描述:在 HTTP 标头中指定默认语言
当没有声明lang
属性时,
此标头应被浏览器用作后备。
HTML5 规范规定,如果
标签上没有lang
属性,并且不存在html
属性设置为meta
的http-equiv
元素,并且只有单一语言HTTP 标头声明中的标记,然后浏览器可以使用该信息来猜测页面中文本的默认语言。Content-Language
但正如 WCAG 中所述,这可能并不总是足够的:
必须应用技术请注意,
HTTP 标头不能用于识别用于处理内容的语言。内容处理语言可以通过其他技术来识别,例如标记语言中的属性Content-Language
和lang
。xml:lang
在 HTML 元素上使用语言属性,并且指定 lang
属性不是针对每个网页执行的操作,而是修改网站模板。
您可以放心地假设,制作网站的 HTML 文件是由静态站点生成器提前生成的,或者是在请求页面时由服务器上的内容管理系统 (CMS) 生成的。
要生成这些文件,需要使用模板。模板提供了通用结构并包含变量,这些变量将被相应页面或组件中的内容替换。
通常,有一个主要的高级 HTML 模板,它提供基本的 HTML 结构以及开始的 HTML 标签
<html>
。因此,通常只需更改一个文件以包含语言属性即可,方法是在该模板中写入
<html lang="en">
,或者使用多语言网站的变量
<html lang="{{language}}">
(语法取决于您的生成器)。