介绍
作为Web开发人员,必须确保您的网站都可以访问所有人。实现这一目标的方法之一是实施可访问的富互联网应用程序(ARIA)标签。 ARIA标签是HTML属性,可帮助使残疾人更容易获得Web内容。在这篇博客文章中,我们将介绍您需要了解的有关实施ARIA标签的所有信息,从基础到高级主题。
让我们从基础开始。 ARIA标签旨在为辅助技术(例如屏幕阅读器)提供其他信息。他们帮助残疾用户更好地了解您网站上的内容。
您今天可以开始使用的一些基本的ARIA标签包括:
ARIA标签和描述
咏叹调标签
此属性用于为元素提供一个无访问的名称,否则将没有名称。您可以将此属性用于标签按钮,链接和表单控件。
<button aria-label="Search" type="submit">Search</button>
Aria-labelledby
此属性用于为与页面上的另一元素相关的元素提供可访问的名称。此属性的值应该是提供可访问名称的元素的ID。
<label id="searchLabel">Search:</label>
<input type="text" aria-labelledby="searchLabel">
ARIA描述
此属性用于提供有关元素的其他信息,例如说明或描述。此属性的值应该是提供其他信息
的元素的ID
<label for="password">Password:</label>
<input type="password" id="password" aria-describedby="passwordDesc">
<span id="passwordDesc">Please enter a password that is at least 8 characters long.</span>
咏叹调角色
ARIA角色是一组预定义的属性,可以在HTML和JavaScript中使用以定义网页上元素的角色或功能。
在JavaScript中,可以使用SetAttribute()方法将ARIA角色添加到元素中,该方法允许您指定元素的角色。
通过将元素的角色设置为适当的ARIA角色,您可以通过辅助技术正确识别它并提供更容易访问的用户体验。重要的是要注意,只有在必要时才能使用ARIA角色,并应与其他可访问性最佳实践一起使用,以确保您的网站可完全访问所有用户。
角色=按钮
按钮角色适用于用户激活时触发响应的可单击元素。
const myButton = document.getElementById("myButton");
myButton.setAttribute("role", "button");
//OR
<button role="button">Search</button>
可以分配给元素的角色的更多示例是:
角色=标题
标题角色表明元素是标题,并且ARIA级属性可用于指示标题的水平(1至6)。
<h1 role="heading" aria-level="1" >This is a heading</h1>
<h2 role="heading" aria-level="2" >This is a heading</h2>
<h3 role="heading" aria-level="3" >This is a heading</h3>
<h4 role="heading" aria-level="4" >This is a heading</h4>
<h5 role="heading" aria-level="5" >This is a heading</h5>
<h6 role="heading" aria-level="6" >This is a heading</h6>
角色= link
链接角色表明元素是超链接,HREF属性可用于指定目标URL。
<a href="https://example.com" role="link">Link Text</a>
角色=菜单
角色菜单指示元素是菜单,并且可以使用ARIA定向属性来指定菜单的方向(水平或垂直)。
<ul role="menu" aria-orientation="horizontal">
<li role="menuitem"><a href="#">Menu Item 1</a></li>
<li role="menuitem"><a href="#">Menu Item 2</a></li>
<li role="menuitem"><a href="#">Menu Item 3</a></li>
</ul>
角色=进度巴尔
角色progressbar表示元素是进度条,并且可以使用ARIA-VALUEMIN,ARIA-VALUENOW和ARIA-VALUEMAX属性来指定进度栏的当前和最大值。
<div role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="50">50%</div>
角色= radiogroup
radiogroup的角色表明元素是一组广播按钮,并且可以使用ARIA检查的属性来指定当前选择的无线电按钮。
<div role="radiogroup">
<label><input type="radio" name="option" role="radio" aria-checked="true"> Option 1</label>
<label><input type="radio" name="option" role="radio"> Option 2</label>
<label><input type="radio" name="option" role="radio"> Option 3</label>
</div>
角色=地区
角色区域表明元素是页面的一个区域,ARIA-Label属性可用于为该区域提供描述性标签。
<div role="region" aria-label="Main Content">
<p>This is the main content of the page.</p>
</div>
角色=搜索
角色搜索表明元素是搜索字段,并且可以使用ARIA-LABEL属性为搜索字段提供标签。
<form role="search">
<label for="search">Search:</label>
<input type="text" id="search" name="search" aria-label="Search">
<button type="submit">Submit</button>
</form>
咏叹调和特性
ARIA状态和属性是指可用于使Web内容更容易被残疾用户访问的属性。 ARIA状态可以指示元素是扩展还是折叠,或者是否选择。 ARIA属性提供了有关元素的更具体信息。
咏叹调
此属性用于隐藏屏幕阅读器和其他辅助技术的元素。这对于不提供任何有意义信息的装饰或多余元素很有用。
<div class="decorative" aria-hidden="true">
<img src="decorative-image.png" alt="">
</div>
ARIA活气
此属性用于指示输入的值无效。这对于形式验证和错误消息很有用。
<label for="email">Email:</label>
<input type="email" id="email" aria-invalid="true" required>
<div class="error-message">Please enter a valid email address.</div>
咏叹调检查
指示是否检查了元素
<!-- Using aria-checked with a checkbox -->
<input type="checkbox" id="example-checkbox" aria-checked="false" />
<!-- Using aria-checked with a button -->
<button id="example-button" aria-checked="true">Selected</button>
ARIA DISABLED
指示元素是否被禁用。
<!-- Using aria-disabled with a button -->
<button id="example-button" aria-disabled="true">Disabled</button>
芳香膨胀
指示元素是否扩展。
<!-- Using aria-expanded with a collapsible section -->
<button id="example-button" aria-expanded="false" aria-controls="example-section">Expand</button>
<section id="example-section" aria-hidden="true">Collapsible content</section>
咏叹调选择
指示是否选择了元素
<!-- Using aria-selected with a listbox -->
<ul role="listbox">
<li role="option" aria-selected="true">Option 1</li>
<li role="option" aria-selected="false">Option 2</li>
<li role="option" aria-selected="false">Option 3</li>
</ul>
咏叹调
ARIA Live区域是一组可访问的Internet应用程序(ARIA)属性,使Web开发人员可以为残疾用户访问的Web内容创建动态,实时更新。在JavaScript中,ARIA Live区域可用于更新网页的部分,而无需用户刷新整个页面。
ARIA Live区域对于显示实时信息的Web应用程序特别有用,例如新闻报纸,聊天室或运动成绩。
要在JavaScript中使用ARIA Live区域,开发人员可以使用ARIA-LIVE属性来指定重要性级别和更新实时区域的模式。 Aria-live属性具有三个可能的值:“ OFF”,“ POILITE”和“自信”。
- 礼貌的价值表明对实时区域的更新不太紧迫,不应中断用户的当前任务。
- 自信值表示对实时区域的更新更为重要,应该中断用户的当前任务。
- '价值意味着现场区域不活跃。
总的来说,JavaScript中的ARIA Live区域是创建更具动态和易于访问的Web应用程序的强大工具,尤其是对于残疾用户。通过使用ARIA Live区域,开发人员可以确保所有用户,无论其能力如何,都可以实时访问和与Web内容交互。
示例:
<div id="live-region" aria-live="polite">
Initial content.
</div>
<button onclick="updateLiveRegion()">Update Live Region</button>
function updateLiveRegion() {
var liveRegion = document.getElementById("live-region");
var newContent = "New content added at " + new Date().toLocaleTimeString();
liveRegion.innerHTML = newContent;
}
在此示例中,有一个DIV元素,其ID为“ Live-Region”。 ARIA-LIVE属性设置为“礼貌”,以表明实时区域不应中断用户的当前任务。实时区域的初始内容是“初始内容”。
当用户单击“更新live区域”按钮时,调用了updateLiveregion()函数。此函数使用getElementById()方法获取具有“ Live-Region” ID的DIV元素,然后使用当前时间更新元素的InnerHTML属性。由于ARIA-LIVE属性设置为“礼貌”,因此屏幕阅读器宣布了更新的内容,而不会中断用户的当前任务。
这只是一个简单的示例,但它显示了如何使用Aria Live区域为所有用户(包括残疾人)访问的Web内容提供实时更新。
ARIA模态对话
ARIA模态对话框是一种ARIA标签,可以在JavaScript中使用,以创建可访问的模态对话框。模态对话框通常用于向需要立即注意的用户提供信息或请求,例如错误消息,确认或通知。
ARIA模态对话框设计为残疾用户,尤其是使用屏幕阅读器的用户。它们通过在显示模式对话框时临时禁用页面的其余部分,并通过提供有关对话框的信息以辅助技术。这使残疾用户更容易理解和与对话框的内容进行交互。
要使用ARIA创建一个可访问的模态对话框,您可以使用角色属性将元素的角色定义为对话框,而ARIA模式属性则表明它是模态对话框。您还可以使用其他ARIA属性来提供有关对话框的其他信息,例如其标题,描述和状态。
示例:
<button id="open-modal">Open Modal Dialog</button>
<div id="modal" role="dialog" aria-modal="true" aria-labelledby="modal-title">
<h2 id="modal-title">Modal Dialog</h2>
<p>This is a modal dialog. Press the escape key or click the close button to close the dialog.</p>
<button id="close-modal">Close</button>
</div>
const openModalButton = document.getElementById('open-modal');
const closeModalButton = document.getElementById('close-modal');
const modal = document.getElementById('modal');
function openModal() {
modal.style.display = 'block';
modal.setAttribute('aria-hidden', 'false');
document.body.style.overflow = 'hidden';
}
function closeModal() {
modal.style.display = 'none';
modal.setAttribute('aria-hidden', 'true');
document.body.style.overflow = 'auto';
}
openModalButton.addEventListener('click', openModal);
closeModalButton.addEventListener('click', closeModal);
modal.addEventListener('keydown', function(event) {
if (event.key === 'Escape') {
closeModal();
}
});
在此示例中,我们有一个按钮,当单击时,打开模式对话框。模态对话框具有“对话框”的角色属性和“ true”的ARIA模式属性,该属性表明它是模态对话框。它还具有一个ARIA标记的属性,该属性引用了对话框标题的ID和一个关闭按钮,该按钮将用于关闭对话框。
在JavaScript代码中,我们定义函数以打开和关闭模式对话框,并将事件侦听器添加到按钮和模态以处理用户交互。当“模态”对话框打开时,我们将页面其余部分的ARIA隐藏属性设置为“ True”,这使得屏幕阅读器无法访问。我们还将模式打开时禁用页面上的滚动,以防止用户意外与页面的其余部分进行交互。
这只是如何在JavaScript中使用ARIA模态对话框的一个示例。关键是使用适当的ARIA属性表明该元素是模态对话框,并提供有关辅助技术对话框的其他信息。通过这样做,您可以使残疾用户更容易访问模态对话。
ARIA标签面板
ARIA选项卡面板是将内容组织到选项卡中的一种方式,用户可以单击或点击以访问网页的不同部分。例如,屏幕读取器可以读取不同的选项卡及其关联的内容,从而使具有视觉障碍的用户可以更有效地导航页面。 ARIA选项卡面板还为所有用户提供了更有条理和简化的用户界面,改善了网站的整体用户体验。
<div role="tabpanel" aria-labelledby="tab1">
<p>This is the content of the first tab.</p>
</div>
<div role="tabpanel" aria-labelledby="tab2">
<p>This is the content of the second tab.</p>
</div>
<ul role="tablist">
<li role="tab" id="tab1" aria-controls="panel1" tabindex="0">Tab 1</li>
<li role="tab" id="tab2" aria-controls="panel2">Tab 2</li>
</ul>
最佳实践
要确保正确使用ARIA标签,必须遵循最佳实践。以下是实施ARIA标签时要记住的一些技巧:
- 仅在必要时使用ARIA标签
- 在您的网站上始终使用ARIA标签
- 用辅助技术测试您的网站,以确保残疾人可以使用
通过遵循这些最佳实践,您可以确保您的网站既可以访问又可供所有人使用。
结论
总而言之,实施ARIA标签是使您的网站更容易访问的关键步骤。通过了解ARIA标签的基础知识和更高级的主题,您可以对网站的可访问性进行重大改进。通过遵循最佳实践,您可以确保每个人都可以访问您的网站,而不论残疾或障碍如何。作为Web开发专家,您有责任确保您的网站访问,并且实施ARIA标签是实现此目标的好方法。
感谢您阅读这篇文章
订阅我的Newsletter以供令人兴奋的帖子。