A polished, dependency-free accessibility widget. WCAG 2.1+ and Israeli IS 5568 (Level AA) compliant. Built for production use across multiple sites.
The widget is live on this page — look for the floating button in the bottom-right corner, or use the demo controls below.
The widget below is loaded exactly as your customers will see it. Open it from the floating button (bottom-right) or use any of these shortcuts:
Every accessibility tool you need to comply with the Israeli Equal Rights for Persons with Disabilities Act and the IS 5568 standard.
Text size, line height, letter and word spacing — all adjustable from a segmented stepper.
Light, Dark, Black & White contrast modes plus invert, grayscale and saturation controls.
Big cursor, reading guide, link and heading highlight, image hide, animation stop, screen reader and keyboard nav optimization.
Hebrew and Arabic flip the panel side, toggle direction and select chevron automatically.
Built-in Israeli accessibility statement view with configurable coordinator contact info.
Settings save to localStorage and apply on every page load. Never asks twice.
Add one script tag before </body>. The widget injects itself, loads its own CSS and logo from the iRestWEB CDN, and exposes window.iRAccessWidget.
<script>
window.iRAccessConfig = {
language: 'en', // 'en' | 'he' | 'ar' | 'ru'
position: 'bottom-right', // trigger button corner
panelSide: 'auto' // 'auto' | 'left' | 'right'
};
</script>
<script src="https://widgets.irestweb.com/widget.min.js" async></script>
window.iRAccessConfig at load time, renders the trigger button, and is fully usable. No CSS imports, no framework, no build step.
widgets.irestweb.com?All options are optional. Defaults are sensible for the most common case.
| Option | Type | Default | Notes |
|---|---|---|---|
language |
'en' | 'he' | 'ar' | 'ru' |
'en' |
UI language. Persists in localStorage. |
position |
'bottom-right' | 'bottom-left' | 'top-right' | 'top-left' |
'bottom-right' |
Trigger button corner. Mirrors automatically in RTL. |
panelSide |
'auto' | 'left' | 'right' |
'auto' |
Side the slide-in panel comes from. 'auto' = right for LTR, left for RTL. |
theme |
'light' | 'dark' |
'light' |
Reserved. Dark mode also auto-detects via prefers-color-scheme. |
accessibilityStatement |
object |
see below | Israeli accessibility statement (הצהרת נגישות). See dedicated section. |
window.iRAccessConfig. Any other keys you set are silently ignored.
Israeli law (Equal Rights for Persons with Disabilities Act 1998 + IS 5568) requires every business to publish an accessibility statement and a coordinator contact. The widget provides this out of the box.
window.iRAccessConfig = {
accessibilityStatement: {
url: 'https://example.com/accessibility' // opens in new tab
}
};
window.iRAccessConfig = {
accessibilityStatement: {
coordinator: {
name: 'Your Name or Title Here',
email: 'accessibility@example.com',
phone: '+972-50-000-0000'
},
lastReviewed: '2026-05-02',
customText: 'For wheelchair-accessible store visits, please call ahead.'
}
};
The footer "Accessibility Statement" link opens an in-panel sub-view containing:
customText paragraph (sanitized)All methods are on window.iRAccessWidget. Available after DOMContentLoaded.
| Method | Description |
|---|---|
toggle() | Open or close the panel. |
toggleStatement(show?) | Show or hide the accessibility statement sub-view inside the panel. |
adjustTextSize(delta) | Increment/decrement text-size percent (50–200, step ±10). |
adjustLineHeight(delta) | Increment/decrement line-height percent (100–250). |
adjustLetterSpacing(delta) | Increment/decrement letter spacing in px (0–10). |
adjustWordSpacing(delta) | Increment/decrement word spacing in px (0–20). |
adjustSaturation(delta) | Increment/decrement saturation percent (0–200). |
setContrast(mode) | 'light' | 'dark' | 'black' | 'none' (clicking again toggles off). |
toggleInvertColors() | Flip the page colors. |
toggleGrayscale() | Apply grayscale filter to the page. |
toggleBigCursor() | Replace the cursor with a 32px high-contrast version. |
toggleReadingGuide() | Show a horizontal reading guide line that follows the cursor. |
toggleHighlightLinks() | Highlight all <a> elements. |
toggleHighlightHeadings() | Highlight all h1–h6 elements. |
toggleHideImages() | Hide all images, videos, and SVGs (except widget UI). |
toggleStopAnimations() | Halt CSS transitions and animations. |
toggleScreenReader() | Apply screen-reader optimizations to the page. |
toggleKeyboardNav() | Apply enhanced keyboard navigation focus rings. |
changeLanguage(lang) | Switch UI language; recreates the widget. |
reset() | Reset all settings to defaults (with native confirm). |
The widget dispatches DOM events on window:
window.addEventListener('iraccess:opened', () => { /* panel opened */ });
window.addEventListener('iraccess:closed', () => { /* panel closed */ });
Pick something to try right now:
<script>
window.iRAccessConfig = {
language: 'he',
position: 'bottom-left',
panelSide: 'auto', // → left in RTL
accessibilityStatement: {
coordinator: {
name: 'נציג נגישות',
email: 'access@site.co.il',
phone: '03-1234567'
},
lastReviewed: '2026-05-02'
}
};
</script>
<script src="https://widgets.irestweb.com/widget.min.js" async></script>
<script>
// Always slides in from the right, even in Hebrew
window.iRAccessConfig = { panelSide: 'right' };
</script>
<script src="https://widgets.irestweb.com/widget.min.js" async></script>
<script>
window.iRAccessConfig = {
accessibilityStatement: {
url: 'https://example.com/legal/accessibility'
}
};
</script>
<script src="https://widgets.irestweb.com/widget.min.js" async></script>
window.addEventListener('iraccess:opened', () => {
// pause an autoplay carousel while the user is adjusting settings
window.myCarousel?.pause();
});
<button> elements with type="button" (no form-submit hijacking).role="switch" with aria-checked on every toggle.aria-pressed on contrast options. aria-labelledby linking each section to its eyebrow heading.:focus-visible outlines on every focusable element.prefers-reduced-motion (animations down to 0.01ms, panel slide preserved).prefers-contrast: more (extra outlines on active states).prefers-color-scheme: dark (full dark-mode palette).Use the widget to adjust this content. Settings persist via localStorage so you can refresh and they stick.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. This is a sample link to test the highlight-links toggle. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt.