Instalasi
Visua11y Agent dapat diinstal melalui package manager atau script tag:
Opsi A — npm / yarn / pnpm
bash
npm install visua11y-agentFull Bundle (Seluruh 53 bahasa ter-bundle)
javascript
import 'visua11y-agent';Slim Bundle (Bahasa dimuat sesuai kebutuhan/on-demand)
javascript
import 'visua11y-agent/slim';Import Programatik
typescript
import { createVisua11yAgent } from 'visua11y-agent';
const plugin = createVisua11yAgent({
lang: 'id',
position: 'bottom-right'
});Best Practice yang Direkomendasikan: Integrasi Framework (SPA / MPA)
Untuk aplikasi Single Page Application (Vue, React, Next.js, Svelte, Nuxt) maupun arsitektur Vite / Rollup Multi-Entry (seperti Laravel + Vite, Rails, Django), sangat disarankan untuk melakukan lazy-load modul visua11y-agent/slim secara dinamis di dalam lifecycle hook komponen.
Keuntungan:
- Non-blocking initial page load: Skrip aksesibilitas tidak menghalangi critical rendering path halaman.
- Isolasi Chunk CSS: Mencegah Rollup memecah stylesheet utilitas bersama (Tailwind/UnoCSS/Bootstrap) keluar dari CSS entry point utama.
- Ukuran bundle lebih hemat: Kamus bahasa diunduh secara on-demand.
Vue 2 / Vue 3
vue
<script>
export default {
name: 'App',
async mounted() {
const { createVisua11yAgent } = await import('visua11y-agent/slim');
createVisua11yAgent({
lang: 'id',
languages: ['id', 'en'],
position: 'bottom-right',
buttonSize: 40,
});
},
};
</script>React / Next.js
tsx
'use client';
import { useEffect } from 'react';
export function AccessibilityWidget() {
useEffect(() => {
import('visua11y-agent/slim').then(({ createVisua11yAgent }) => {
createVisua11yAgent({
lang: 'id',
languages: ['id', 'en'],
position: 'bottom-right',
});
});
}, []);
return null;
}Vanilla JS / MPA (Saat DOM Siap)
javascript
document.addEventListener('DOMContentLoaded', async () => {
const { createVisua11yAgent } = await import('visua11y-agent/slim');
createVisua11yAgent({
lang: 'id',
position: 'bottom-right',
});
});Opsi B — CDN (Script Tag)
Gunakan distribusi CDN resmi dengan pinning versi untuk stabilitas aplikasi produksi:
html
<!-- Full UMD Bundle (Gunakan @latest atau pin versi tertentu seperti @1.10.1) -->
<script
src="https://cdn.jsdelivr.net/npm/visua11y-agent@latest/dist/visua11y-agent.umd.js"
data-visua11y-agent-lang="id"
data-visua11y-agent-position="bottom-right"
defer
></script>Atau via unpkg:
html
<script
src="https://unpkg.com/visua11y-agent@latest/dist/visua11y-agent.umd.js"
defer
></script>