Vue 3.0 是一款由 Vue.js 开发的前端框架,它是一个基于 JavaScript 的 MVVM 框架,可以帮助开发者快速构建 Web 应用程序。Vue 3.0 主要特性包括:
1、重新设计的响应式系统:Vue 3.0 重新设计了响应式系统,使其更加高效、易用。它使用 Proxy 对象来实现响应式数据,并且可以在不同的浏览器上运行。 2、Composition API:Composition API 是 Vue 3.0 中新增的一个 API,它允许开发者使用函数式组件来创建复杂的 UI 界面。它还允许开发者将多个小函数合并成一个大函数,从而使代码更加优雅。 3、Fragment Instance API:Fragment Instance API 是 Vue 3.0 中新增的一个 API,它允许开发者在不同的 DOM 节点之间创建多个 Fragment 实例。这样就可以在不同的 DOM 节点之间创建多个独立的 UI 界面。 4、Portals API:Portals API 是 Vue 3.0 中新增的一个 API,它允许开发者将 UI 界面从当前 DOM 节点“传送”到其他 DOM 节点中去。这样就能够在不同位置显示相同的 UI 界面了。
此外,Vue 3.0 还包括了 TypeScript 的支持、ES6+ 特性的支持、Web Components 特性的支持、Virtual DOM 特性的优化以及对浏览器原生事件机制的优化。所有这些特性都使得 Vue 3.0 更加易用、高效、快速。
Web 可访问性 (也称为 a11y) 是指创建可供任何人使用的网站的实践方式——无论是身患某种障碍、通过慢速的网络连接访问、使用老旧或损坏的硬件,还是仅仅是处于不利环境中的人。例如,在视频中添加字幕可以帮助失聪、重听或在嘈杂的环境中听不到手机的用户。同样,请确保文字对比度不要太低,这对低视力用户和那些试图在强光下使用手机的用户都有帮助。
你是否已经准备开始却又无从下手?
可以先看看由万维网联盟 (W3C) 提供的规划和管理 web 可访问性。
你应该在每个页面的顶部添加一个直接指向主内容区域的链接,这样用户就可以跳过在多个网页上重复的内容。
通常这个链接会放在 App.vue
的顶部,这样它就会是所有页面上的第一个可聚焦元素:
<ul class="skip-links">
<li>
<a href="#main" ref="skipLink">跳到主内容</a>
</li>
</ul>
若想在非聚焦状态下隐藏该链接,可以添加以下样式:
.skipLink {
white-space: nowrap;
margin: 1em auto;
top: 0;
position: fixed;
left: 50%;
margin-left: -72px;
opacity: 0;
}
.skipLink:focus {
opacity: 1;
background-color: white;
padding: .5em;
border: 1px solid black;
}
一旦用户改变路由,请将焦点放回到这个跳过链接。通过用如下方式聚焦 ref
即可实现:
<script>
export default {
watch: {
$route() {
this.$refs.skipLink.focus();
}
}
};
</script>
点击此处实现
阅读关于跳跃到主体内容的链接的文档
可访问性最重要的部分之一是确保设计本身是可访问的。设计不仅要考虑颜色对比度、字体选择、文本大小和语言,还要考虑应用程序中内容的结构。
用户可以通过标题在应用程序中进行导航。为应用程序的每个部分设置描述性标题可以让用户更容易地预测每个部分的内容。说到标题,有几个推荐的可访问性实践:
<h1>
- <h6>
关于标题可进一步阅读
<main role="main" aria-labelledby="main-title">
<h1 id="main-title">Main title</h1>
<section aria-labelledby="section-title">
<h2 id="section-title"> Section Title </h2>
<h3>Section Subtitle</h3>
<!-- 内容 -->
</section>
<section aria-labelledby="section-title">
<h2 id="section-title"> Section Title </h2>
<h3>Section Subtitle</h3>
<!-- 内容 -->
<h3>Section Subtitle</h3>
<!-- 内容 -->
</section>
</main>
地标 (landmark) 会为应用中的章节提供访问规划。依赖辅助技术的用户可以跳过内容直接导航到应用程序的每个部分。你可以使用 ARIA role 帮助你实现这个目标。
HTML | ARIA Role | 地标的目的 |
---|---|---|
header | role="banner" | 主标题:页面的标题 |
nav | role="navigation" | 适合用作文档或相关文档导航的链接集合 |
main | role="main" | 文档的主体或中心内容 |
footer | role="contentinfo" | 关于父级文档的信息:脚注/版权/隐私声明链接 |
aside | role="complementary" | 用来支持主内容,同时其自身的内容是相对独立且有意义的 |
无对应元素 | role="search" | 该章节包含整个应用的搜索功能 |
form | role="form" | 表单相关元素的集合 |
section | role="region" | 相关的且用户可能会导航到的内容。必须为该元素提供 label |
Tip:
在使用地标 HTML 元素时,建议加上冗余的地标 role attribute,以最大限度地与传统不支持 HTML5 语义元素的浏览器兼容。
关于地标可进一步阅读