Skip to content

@web-engine-dev/accessibility

Accessibility features (a11y) for web-engine-dev.

Features

  • Screen Reader Support: ARIA labels and live regions
  • Keyboard Navigation: Full keyboard control
  • High Contrast: Visual accessibility modes
  • Text-to-Speech: Audio descriptions
  • Colorblind Modes: Color vision deficiency filters
  • Motor Accessibility: Input assistance

Installation

bash
npm install @web-engine-dev/accessibility
# or
pnpm add @web-engine-dev/accessibility

Quick Start

typescript
import { Accessibility, ScreenReader, ColorblindFilter } from '@web-engine-dev/accessibility';

// Initialize accessibility system
const a11y = new Accessibility();

// Enable screen reader
a11y.enableScreenReader();

// Announce to screen reader
a11y.announce('Game started. Press Space to jump.');

// Enable colorblind mode
a11y.setColorblindMode('deuteranopia');

// Enable high contrast
a11y.setHighContrast(true);

API Overview

Screen Reader

typescript
// Announce messages
a11y.announce('Level complete!');
a11y.announce('Enemy approaching', { priority: 'assertive' });

// Describe UI elements
a11y.describe(button, 'Start game button');

// Live regions for dynamic content
a11y.setLiveRegion(scoreDisplay, 'polite');

Keyboard Navigation

typescript
const keyboard = new KeyboardNavigation({
  focusIndicator: true,
  focusIndicatorStyle: {
    color: '#ffff00',
    width: 3,
  },
});

// Register focusable elements
keyboard.register(menuButtons);

// Navigate
keyboard.focusNext();
keyboard.focusPrevious();
keyboard.activate();

Colorblind Modes

typescript
// Set colorblind filter
a11y.setColorblindMode('protanopia'); // Red-blind
a11y.setColorblindMode('deuteranopia'); // Green-blind
a11y.setColorblindMode('tritanopia'); // Blue-blind

// Apply to renderer
renderer.postProcess.add(a11y.getColorFilter());

Motor Accessibility

typescript
// Enable sticky keys
a11y.enableStickyKeys();

// Enable auto-aim assistance
a11y.enableAutoAim({ strength: 0.5 });

// Extended timing
a11y.setQTETimeScale(2.0);

// One-switch mode
a11y.enableOneSwitchMode();

Text-to-Speech

typescript
// Speak text
a11y.speak('You found a treasure chest');

// Read UI
a11y.readElement(dialogBox);

// Settings
a11y.tts.setRate(1.0);
a11y.tts.setVolume(0.8);
a11y.tts.setVoice('english-us');

Accessibility Settings UI

typescript
// Show accessibility menu
a11y.showSettingsUI();

// Get current settings
const settings = a11y.getSettings();

// Apply settings
a11y.applySettings(savedSettings);

Proprietary software. All rights reserved.