iRAccess

A polished, dependency-free accessibility widget. WCAG 2.1+ and Israeli IS 5568 (Level AA) compliant. Built for production use across multiple sites.

Vanilla JS No build step RTL / LTR EN · HE · AR · RU ~30 KB minified

The widget is live on this page — look for the floating button in the bottom-right corner, or use the demo controls below.

Live demo — try it on this page

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:

Notice — there is no backdrop. Settings apply live to this page so you can see the effect of every adjustment without closing the panel. Close it with the X button or the Esc key when you're done.

What's included

Every accessibility tool you need to comply with the Israeli Equal Rights for Persons with Disabilities Act and the IS 5568 standard.

Aa

Text & Reading

Text size, line height, letter and word spacing — all adjustable from a segmented stepper.

Color & Contrast

Light, Dark, Black & White contrast modes plus invert, grayscale and saturation controls.

Reading Tools

Big cursor, reading guide, link and heading highlight, image hide, animation stop, screen reader and keyboard nav optimization.

RTL / LTR

Hebrew and Arabic flip the panel side, toggle direction and select chevron automatically.

📜

Statement (הצהרת נגישות)

Built-in Israeli accessibility statement view with configurable coordinator contact info.

💾

Persistent

Settings save to localStorage and apply on every page load. Never asks twice.

Quick start

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>
That's it. The widget reads window.iRAccessConfig at load time, renders the trigger button, and is fully usable. No CSS imports, no framework, no build step.

Why load from widgets.irestweb.com?

Configuration

All options are optional. Defaults are sensible for the most common case.

OptionTypeDefaultNotes
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.
Branding is locked. The logo, brand colors, stylesheet URL and asset base are derived from the script source on the iRestWEB CDN and cannot be overridden by window.iRAccessConfig. Any other keys you set are silently ignored.

Israeli Accessibility Statement

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.

Option A — link to a hosted statement page

window.iRAccessConfig = {
  accessibilityStatement: {
    url: 'https://example.com/accessibility'   // opens in new tab
  }
};

Option B — in-widget statement (recommended)

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:

This page demonstrates Option B. Open the widget (bottom-right), then click "Accessibility Statement" in the footer.

Public JavaScript API

All methods are on window.iRAccessWidget. Available after DOMContentLoaded.

MethodDescription
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 h1h6 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).

Custom events

The widget dispatches DOM events on window:

window.addEventListener('iraccess:opened', () => { /* panel opened */ });
window.addEventListener('iraccess:closed', () => { /* panel closed */ });

Try it from the console

Pick something to try right now:

Recipes

Hebrew site, panel anchored to the bottom-left, with coordinator info

<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>

Force the panel side regardless of language

<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>

Use a hosted statement page instead of the in-widget view

<script>
  window.iRAccessConfig = {
    accessibilityStatement: {
      url: 'https://example.com/legal/accessibility'
    }
  };
</script>
<script src="https://widgets.irestweb.com/widget.min.js" async></script>

React to widget state from your own code

window.addEventListener('iraccess:opened', () => {
  // pause an autoplay carousel while the user is adjusting settings
  window.myCarousel?.pause();
});

Accessibility & compliance

Sample content for testing

Use the widget to adjust this content. Settings persist via localStorage so you can refresh and they stick.

Lorem Ipsum heading

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.

List example