Appearance
Configuration Options Reference
Complete reference for all BrowseAid Widget configuration options.
Overview
The BrowseAid Widget accepts configuration through the global window.BrowseAidOptions object. All options are optional and have sensible defaults.
typescript
interface BrowseAidWidgetOptions {
theme: 'v1' | 'v2'
position: PositionOptions
draggableToggle?: boolean
sectionsCollapsible?: boolean
sectionsCollapsed?: boolean
tools?: ToolsConfiguration
languages?: LanguagesConfiguration
sections?: SectionsConfiguration
profiles?: ProfilesConfiguration
}1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
Core Options
theme
Type: 'v1' | 'v2'Default: 'v2'
Selects the visual theme for the widget.
javascript
window.BrowseAidOptions = {
theme: 'v2' // Modern design with improved accessibility
};1
2
3
2
3
Available themes:
'v1'- Classic theme'v2'- Modern theme (recommended)
position
Type: PositionOptions
Controls the positioning of both the toggle button and widget panel.
typescript
interface PositionOptions {
button: 'left-bottom' | 'right-bottom' | 'left-top' | 'right-top'
widget: 'left' | 'right'
}1
2
3
4
2
3
4
Defaults:
javascript
position: {
button: 'right-bottom',
widget: 'right'
}1
2
3
4
2
3
4
Examples:
javascript
// Button in top-left, widget panel on left side
window.BrowseAidOptions = {
position: {
button: 'left-top',
widget: 'left'
}
};1
2
3
4
5
6
7
2
3
4
5
6
7
draggableToggle
Type: booleanDefault: true
Enables or disables the draggable functionality for the widget button. When enabled, users can drag the button to a custom position on the screen.
javascript
window.BrowseAidOptions = {
draggableToggle: true // Allow the button to be draggable
};1
2
3
2
3
sectionsCollapsible
Type: booleanDefault: true
Global setting that determines if widget sections can be collapsed/expanded.
javascript
window.BrowseAidOptions = {
sectionsCollapsible: false // All sections always expanded
};1
2
3
2
3
sectionsCollapsed
Type: booleanDefault: false
Global setting for initial collapsed state of sections.
javascript
window.BrowseAidOptions = {
sectionsCollapsed: true // All sections start collapsed
};1
2
3
2
3
Tools Configuration
tools
Type: Record<string, boolean>
Enable or disable specific accessibility tools globally.
javascript
window.BrowseAidOptions = {
tools: {
'font-size': true, // Enable font size tool
'text-to-speech': false, // Disable text-to-speech
'dark-mode': true, // Enable dark mode
'color-inversion': false, // Disable color inversion
'reading-guide': true // Enable reading guide
}
};1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
Available Tools:
| Tool Key | Description |
|---|---|
font-size | Adjust text size |
line-spacing | Modify line height |
text-align | Change text alignment |
letter-spacing | Adjust character spacing |
word-spacing | Modify word spacing |
readable-fonts | Apply dyslexia-friendly fonts |
dark-mode | Toggle dark/light theme |
contrast | Adjust color contrast |
color-filter | Apply colorblind filters |
saturation | Modify color saturation |
color-inversion | Invert page colors |
blue-filter | Reduce blue light |
reading-guide | Show reading line guide |
reading-mask | Focus reading area |
text-to-speech | Read text aloud |
hide-images | Hide/show images |
alt-text-tooltip | Show image descriptions |
sound-mute | Mute page sounds |
link-highlighter | Highlight links |
heading-highlighter | Highlight headings |
focus-indicator | Enhanced focus outline |
table-of-contents | Page structure navigation |
reduced-motion | Reduce animations |
big-cursor | Enlarged cursor |
Languages Configuration
languages
Type: string[] | Record<string, boolean>
Configure available interface languages.
Array Format:
javascript
window.BrowseAidOptions = {
languages: ['en', 'es', 'fr', 'de', 'zh']
};1
2
3
2
3
Object Format:
javascript
window.BrowseAidOptions = {
languages: {
'en': true, // English (always available)
'es': true, // Spanish
'fr': true, // French
'de': false, // German (disabled)
'zh': true // Chinese
}
};1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
Supported Language Codes:
| Code | Language | Native Name |
|---|---|---|
en | English | English |
es | Spanish | Español |
fr | French | Français |
de | German | Deutsch |
zh | Chinese | 中文 |
bg | Bulgarian | Български |
cs | Czech | Čeština |
da | Danish | Dansk |
el | Greek | Ελληνικά |
et | Estonian | Eesti |
fi | Finnish | Suomi |
hi | Hindi | हिन्दी |
hr | Croatian | Hrvatski |
hu | Hungarian | Magyar |
it | Italian | Italiano |
ja | Japanese | 日本語 |
ko | Korean | 한국어 |
lt | Lithuanian | Lietuvių |
lv | Latvian | Latviešu |
nl | Dutch | Nederlands |
no | Norwegian | Norsk |
pl | Polish | Polski |
pt | Portuguese | Português |
ro | Romanian | Română |
ru | Russian | Русский |
sk | Slovak | Slovenčina |
sl | Slovenian | Slovenščina |
sv | Swedish | Svenska |
tr | Turkish | Türkçe |
Note: English (en) is always available as a fallback language.
Sections Configuration
sections
Type: Record<string, SectionConfiguration>
Configure individual widget sections.
typescript
interface SectionConfiguration {
enabled: boolean
title?: string
titleLocalized?: Record<string, string>
collapsible?: boolean
collapsed?: boolean
tools?: Record<string, boolean>
}1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
Available Sections:
profiles- Accessibility Profileslanguage- Language Settingstext- Text Settingscolor- Color Settingsreading- Reading Toolsmedia- Media Settingsnavigation- Navigation Helpers
Example:
javascript
window.BrowseAidOptions = {
sections: {
text: {
enabled: true,
title: 'Typography Options',
titleLocalized: {
'es': 'Opciones de Tipografía',
'fr': 'Options de Typographie'
},
collapsible: false, // Override global setting
collapsed: true, // Start collapsed
tools: {
'font-size': true,
'line-spacing': true,
'readable-fonts': false
}
},
color: {
enabled: true,
tools: {
'dark-mode': true,
'color-inversion': false
}
},
media: {
enabled: false // Disable entire section
}
}
};1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Profiles Configuration
profiles
Type: Record<string, ProfileConfiguration>
Create, modify, or disable accessibility profiles.
typescript
interface ProfileConfiguration {
enabled?: boolean
title?: string
titleLocalized?: Record<string, string>
description?: string
descriptionLocalized?: Record<string, string>
tools?: Record<string, ToolSettings>
}
interface ToolSettings {
enabled: boolean
[option: string]: any // Tool-specific options
}1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
Default Profiles:
seizureSafe- Eliminates flashes and reduces colorvisionImpaired- Enhances visuals for better readabilityadhdFriendly- Reduces distractions and improves focuscognitiveDisability- Assists with reading and focusingkeyboardNavigation- Optimizes for keyboard-only useblindUser- Optimizes for screen readers
Examples:
Override Existing Profile:
javascript
window.BrowseAidOptions = {
profiles: {
seizureSafe: {
title: 'Enhanced Seizure Safety',
description: 'Maximum protection against seizure triggers',
tools: {
'reduced-motion': { enabled: true },
'hide-images': { enabled: true, showAltText: true },
saturation: { enabled: true, level: 50 } // Lower saturation
}
}
}
};1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
Create Custom Profile:
javascript
window.BrowseAidOptions = {
profiles: {
myCustomProfile: {
title: 'High Contrast Reading',
titleLocalized: {
'es': 'Lectura de Alto Contraste',
'fr': 'Lecture à Contraste Élevé'
},
description: 'Optimized for users with low vision',
descriptionLocalized: {
'es': 'Optimizado para usuarios con baja visión',
'fr': 'Optimisé pour les utilisateurs malvoyants'
},
tools: {
'font-size': { enabled: true, level: 1.8 },
'contrast': { enabled: true, level: 'enhanced' },
'line-spacing': { enabled: true, level: '2.0' },
'dark-mode': { enabled: true }
}
}
}
};1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Disable Profile:
javascript
window.BrowseAidOptions = {
profiles: {
adhdFriendly: {
enabled: false // Remove from interface
}
}
};1
2
3
4
5
6
7
2
3
4
5
6
7
Tool-Specific Settings
When configuring tools in profiles, you can include tool-specific options:
Font Size
javascript
'font-size': {
enabled: true,
level: 1.5 // 150% of original size
}1
2
3
4
2
3
4
Text to Speech
javascript
'text-to-speech': {
enabled: true,
speechRate: 1.2, // Speaking speed
speechPitch: 1.0, // Voice pitch
highlightMode: 'word' // 'word' | 'sentence' | 'paragraph'
}1
2
3
4
5
6
2
3
4
5
6
Color Saturation
javascript
saturation: {
enabled: true,
level: 80 // 80% saturation
}1
2
3
4
2
3
4
Reading Guide
javascript
'reading-guide': {
enabled: true,
thickness: 3, // Line thickness
color: '#ff0000' // Custom color
}1
2
3
4
5
2
3
4
5
Complete Example
javascript
window.BrowseAidOptions = {
// Core settings
theme: 'v2',
position: {
button: 'right-bottom',
widget: 'right'
},
// Section behavior
sectionsCollapsible: true,
sectionsCollapsed: false,
// Available languages
languages: ['en', 'es', 'fr', 'de'],
// Global tool settings
tools: {
'text-to-speech': false, // Disable globally
'color-inversion': false
},
// Section configuration
sections: {
text: {
enabled: true,
title: 'Typography',
collapsible: true,
collapsed: false,
tools: {
'font-size': true,
'line-spacing': true,
'readable-fonts': true
}
},
profiles: {
enabled: true,
collapsible: false // Always expanded
}
},
// Custom profiles
profiles: {
// Override existing profile
visionImpaired: {
title: 'Low Vision Support',
tools: {
'font-size': { enabled: true, level: 2.0 },
'contrast': { enabled: true, level: 'enhanced' },
'big-cursor': { enabled: true, level: 'white' }
}
},
// Custom profile
officeWorker: {
title: 'Office Environment',
description: 'Optimized for long computer sessions',
tools: {
'blue-filter': { enabled: true, level: 'medium' },
'dark-mode': { enabled: true },
'reduced-motion': { enabled: true }
}
}
}
};1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
Validation and Fallbacks
The widget automatically handles invalid configurations:
- Invalid themes → Falls back to 'v2'
- Unknown language codes → Filtered out with console warnings
- Missing English → Always added as fallback
- Invalid positions → Uses defaults
- Unknown tools → Ignored silently
- Malformed sections → Uses defaults
Next Steps
- 🛠️ API Reference - Programmatic widget control
- 📚 Tool Documentation - Individual tool options