Composant masqué visuellement Vue.js (Vue 3 uniquement)
Dans le cas d'un contenu visuel, les utilisateurs utilisant des technologies d'assistance (par exemple, des lecteurs d'écran) peuvent ne pas toujours savoir ce que signifie le contenu.
Dans la plupart des cas, le contenu accessible peut être fourni par un balisage sémantique, mais il n'existe actuellement aucun balisage capable de fournir un contenu qui n'est pas visuellement visible mais qui peut être lu à haute voix.
Par exemple, lorsqu'un bouton est affiché avec uniquement des pictogrammes, la description du bouton peut être discernable visuellement, mais le lecteur d'écran peut ne pas savoir ce que cela signifie.
<button type="submit">
<span>
📧
</span>
</button>
Dans de tels cas,
<VisuallyHidden>est un bon choix.
<button type="submit">
<span aria-hidden="true">
📧
</span>
<VisuallyHidden>
Send email
</VisuallyHidden>
</button>
Utilisez aria-hidden="true"
pour empêcher les lecteurs d'écran d'emoji.
Il était utilisé dans Bootstrap sous la forme de
sr-only.
WebAIM : CSS en action - Contenu invisible réservé aux utilisateurs de lecteurs d'écran
https://vue-visually-hidden.vercel.app/
npm install -D vue-visually-hidden
yarn add -D vue-visually-hidden
<template>
<div>
<VisuallyHidden>
Visually Hidden Text
</VisuallyHidden>
<VisuallyHidden :isFocusable="true">
<a href="http://example.com">example</a>
</VisuallyHidden>
</div>
</template>
<script setup>
import { VisuallyHidden } from 'vue-visually-hidden'
</script>
import 'vue-visually-hidden/dist/style.css'
import 'vue-visually-hidden/style'
soutenir | taper | défaut |
---|---|---|
isFocusable | Boolean |
false |
Inspiré de l'assistant masqué visuellement Bootstrap
.visually-hidden-focusablepeut être affiché par n'importe quel élément enfant du conteneur qui reçoit le focus.
<template>
<VisuallyHidden :isFocusable="true">
<a href="http://example.com">example</a>
</VisuallyHidden>
</template>
Cela peut être utilisé principalement pour une fonctionnalité appelée lien de saut. Un lien de saut est un lien qui permet aux utilisateurs du clavier d'accéder rapidement au contenu principal, et les liens sont visibles lors de la mise au point.
Si vous obtenez l'erreur
Invalid VNode type: Symbol(Fragment) (symbol), essayez
resolvede configurer le fichier de configuration comme suit.
Voir : https://github.com/vuejs/vue-next/issues/2064
const path = require('path')
module.exports = {
configureWebpack: {
resolve: {
symlinks: false,
alias: {
vue: path.resolve('./node_modules/vue')
}
}
}
}
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
export default defineConfig({
plugins: [vue()],
resolve: {
dedupe: ['vue']
}
})