Usabilis Documentation

Version: 3.6.0 | Last update: 23 Dicembre 2025

Usabilis is a complete solution to make your site more accessible.

What is Usabilis

Usabilis is a WordPress plugin that adds an advanced accessibility widget to your site, allowing users to customize their browsing experience based on their specific needs.

Main features

35+ Accessibility Features

Pre-configured profiles, text control, colors, navigation, speech synthesis and much more.

Optimized Performance

Lightweight widget that doesn't slow down your website.

Easy to Configure

Simple installation and intuitive control panel.

System requirements

Requirement Minimum Recommended
WordPress 5.0 6.0 or higher
PHP 7.2 8.0 or higher
MySQL 5.6 8.0 or higher
Browser Chrome, Firefox, Safari, Edge (recent versions)

License types

Basic

  • 1 domain
  • All accessibility controls
  • Email support

Pro Popular

  • 5 domains
  • All accessibility controls
  • Color customization
  • Widget icon size
  • Priority support

Enterprise

  • Unlimited domains
  • All accessibility controls
  • Color customization
  • Widget icon size
  • Custom CSS
  • Priority support
  • White label

Installation

Important:: Important: Make sure you have a valid license before proceeding with the installation.

Method 1: Upload via WordPress

  1. Download the plugin ZIP file from your client area
  2. Access the WordPress administration panel
  3. Go to Plugins → Add New
  4. Click on Upload Plugin
  5. Select the ZIP file and click Install Now
  6. Activate the plugin

Method 2: Upload via FTP

  1. Extract the plugin ZIP file
  2. Connect to your server via FTP
  3. Upload the usabilis folder to /wp-content/plugins/
  4. Access the WordPress panel and go to Plugins
  5. Find Usabilis and click Activate

Post-installation

After activating the plugin:

  • Go to Settings → Usabilis
  • Enter your license key
  • Configure the widget settings
  • Verify that the widget appears correctly on the frontend

Configuration

License activation

  1. Access Settings → Usabilis
  2. Enter the license key in the appropriate field
  3. Click on Save License
  4. Verify that the status shows "Active License"

Widget configuration

Button position

You can choose where to position the widget opening button:

  • Bottom right (default)
  • Bottom left
  • Center right
  • Center left

Support email

Enter the email that will be shown in the accessibility statement to allow users to contact you.

Enable/Disable the widget

You can temporarily disable the widget by unchecking the "Show accessibility panel in frontend" option.

New Visibility Options (v3.3.0+)

NEW! New! Since version 3.3.0 you can control where and how to show the widget with greater precision.

Hide on Mobile

This option allows you to completely hide the widget on mobile devices. Useful if:

  • You have a dedicated mobile app with integrated accessibility features
  • Your mobile design uses different approaches for accessibility
  • You want to optimize performance on devices with limited resources
Warning:: Warning: If you hide the widget on mobile, make sure to provide accessibility alternatives for mobile users.

Section Management

You can now choose exactly which widget sections to show to your users:

Accessibility Profiles

Preset modes for different disabilities (Visually Impaired, ADHD, Epilepsy, etc.)

CONTENT Section

Controls for text, font, spacing and alignment

COLORS Section

Controls for contrast, brightness, saturation and color inversion

ORIENTATION Section

Navigation tools like reading line, mask and highlighting

How to configure:

  1. Go to Settings → Usabilis
  2. Find the "Widget Configuration" section
  3. Check/uncheck the checkboxes for each section
  4. Click on "Save Configuration"
Important:: Important: At least one section must remain active. The system will prevent deactivating all sections.

Widget Features

Accessibility profiles

Profile Description Applied settings
Visually Impaired Mode Improves site visibility Larger text, readable font, increased saturation
Seizure Safe Profile Eliminates flashes and reduces color Grayscale, disable animations
ADHD Friendly Mode Focused navigation, without distractions Increased saturation, reading mask
Blind Users Mode Optimized for screen readers High contrast, maximum brightness
Epilepsy Safe Mode Dampens colors and removes flashes Grayscale, stop animations

Content controls

Larger text

Increases text size up to 130%

Cursor

Changes cursor type (pointer, crosshair, text)

Line height

Increases space between lines to improve readability

Letter spacing

Increases space between letters

Readable font

Replaces fonts with Arial for maximum readability

Dyslexia font

Applies OpenDyslexic font optimized for dyslexics

Color controls

Invert colors

Inverts all page colors

Brightness

Adjusts overall site brightness

Contrast

Increases or decreases contrast

Saturation

Adjusts color intensity

Orientation tools

Reading line

Shows a horizontal line that follows the mouse

Keyboard navigation

Highlights elements when navigating with TAB

Highlight titles

Emphasizes all titles (H1-H6)

Reading mask

Darkens areas above and below the reading point

Advanced accessibility tools

Read the page

Allows clicking on any page text to hear it through speech synthesis. Includes:

  • Reading of text, links, buttons and labels
  • Automatic multilingual support
  • Mini player with stop control
  • Highlighting of text being read

Disable animations

Stops all CSS and JavaScript animations on the site for motion-sensitive users. Includes:

  • Stop CSS animations
  • Block parallax effects
  • Disable transitions
  • Support for prefers-reduced-motion

The Accessibility Widget

How it works

The widget is automatically loaded on all pages of your WordPress site. Users can:

  1. Click on the accessibility button to open the panel
  2. Select a pre-configured profile or customize individual settings
  3. Settings are saved in the browser and automatically applied on subsequent visits

"Read the page" feature

How speech synthesis works

When the user activates the "Read the page" function:

  1. The mouse cursor turns into a reading indicator
  2. Clicking on any text element, the content is read aloud
  3. A mini player appears showing the reading status
  4. The element being read is visually highlighted
  5. Reading can be stopped at any time
Note:: Note: The function uses the browser's Web Speech API, so the quality and available voices depend on the user's browser and operating system.

Supported content types

  • Normal text: Paragraphs, titles, lists
  • Links: Announces "Link:" followed by text
  • Buttons: Announces "Button:" followed by text
  • Images: Reads alternative text if present
  • Forms: Reads field labels

Keyboard shortcuts

Shortcut Action
Alt + A (Windows/Linux) Open/close accessibility panel
⌘ + A (Mac) Open/close accessibility panel
Esc Close panel / Stop reading

Browser compatibility

The widget is compatible with all modern browsers:

  • Chrome 90+
  • Firefox 88+
  • Safari 14+
  • Edge 90+

Speech synthesis support by browser

Browser Speech synthesis support Notes
Chrome Full System voices + Google voices
Firefox Full System voices only
Safari Full macOS/iOS system voices
Edge Full System voices + Microsoft voices
The widget automatically adapts to mobile devices with a touch-optimized interface.

Customization

Customization features are available for Pro and Enterprise licenses.

Color customization (Pro/Enterprise)

With a Pro or Enterprise license you can customize:

  • Main color: The color of the button and active elements
  • Icon size: Small, Medium, Large or Very Large
// Settings are automatically saved
// and applied to the widget in real time

Custom CSS (Enterprise)

Available only for Enterprise licenses

With an Enterprise license you can add custom CSS to completely modify the widget appearance:

/* Example: Change widget border radius */
.wpap-section {
    border-radius: 0 !important;
}

/* Example: Custom font for title */
.wpap-sidebar-header h2 {
    font-family: 'Montserrat', sans-serif !important;
}

/* Example: Custom animation for button */
.wpap-toggle-button {
    animation: pulse 2s infinite;
}

@keyframes pulse {
    0% { transform: scale(1); }
    50% { transform: scale(1.05); }
    100% { transform: scale(1); }
}

/* Example: Customize reading mini player */
.wpap-reading-mini-player {
    background: #1a202c !important;
    border-radius: 20px !important;
}

/* Example: Style for highlighted text during reading */
.wpap-reading-active {
    background: rgba(52, 179, 228, 0.2) !important;
    padding: 2px 4px !important;
    border-radius: 4px !important;
}

White Label (Enterprise)

Enterprise licenses automatically remove the "Developed by STUDIO 09" branding from the widget.

Visibility and Sections Control

NEW v3.3.0: New v3.3.0: Now you have complete control over where and how to show the widget!

Device Visibility

Hide on Mobile

The widget can be completely hidden on mobile devices. This is useful for:

  • Mobile Apps: If you have an app with integrated accessibility features
  • Responsive Design: If your mobile design uses different approaches
  • Performance: To optimize loading on devices with slow connections

How does mobile detection work?

The system uses three methods to identify mobile devices:

  1. User Agent: Detects Android, iOS, Windows Phone, etc.
  2. Touch Screen: Verifies touch capabilities
  3. Screen Size: Considers mobile devices with width ≤ 768px
// The widget automatically checks if it's on mobile
if (config.hideOnMobile && isMobileDevice()) {
    // Widget is not loaded
    return;
}

Granular Section Control

Why control sections?

Not all sites have the same needs. Some examples:

  • Minimalist blog: You might only want text controls
  • Corporate site: Only preset profiles for simplicity
  • E-commerce: Focus on contrast and readability
  • Educational portal: All features active

Best Practices

Recommended
  • Analyze your users' needs
  • Start with all sections active
  • Gradually remove unused ones
  • Monitor user feedback
To Avoid
  • Deactivating too many sections at once
  • Hiding on mobile without alternatives
  • Ignoring accessibility needs
  • Relying only on assumptions

Configuration Examples

"Essential" Configuration

✓ Accessibility Profiles
✗ CONTENT Section
✗ COLORS Section
✗ ORIENTATION Section

Ideal for: Sites with already optimized design that only want to offer quick profiles.

"Reading" Configuration

✗ Accessibility Profiles
✓ CONTENT Section
✗ COLORS Section
✓ ORIENTATION Section

Ideal for: Blogs, news sites, documentation portals.

"Visual" Configuration

✗ Accessibility Profiles
✗ CONTENT Section
✓ COLORS Section
✗ ORIENTATION Section

Ideal for: Galleries, portfolios, sites with strong visual component.

Frequently Asked Questions

No, the widget is optimized for performance. It loads asynchronously and is very lightweight. Additionally, it uses a global CDN to ensure fast loading times.

It depends on the license type:
  • Basic: 1 domain
  • Pro: up to 5 domains
  • Enterprise: unlimited domains
You can manage your domains from the client panel.

Yes, the widget is fully GDPR compliant. User preferences are saved only in the local browser (localStorage) and are not sent to external servers. Usage statistics are anonymous and aggregated.

Yes! Since version 3.3.0 you can activate the "Hide on Mobile" option in the widget settings. The widget won't be loaded on devices with screens smaller than 768px or that are detected as mobile touch devices.

Certainly! With version 3.3.0 you can choose which sections to show:
  • Accessibility Profiles: The preset modes
  • CONTENT: Text controls
  • COLORS: Color and contrast management
  • ORIENTATION: Navigation tools
At least one section must remain active for the widget to function.

On the contrary! The new options improve performance:
  • By disabling unnecessary sections, the widget becomes lighter
  • Conditional loading reduces impact on Core Web Vitals metrics

Yes! The speech synthesis function automatically uses the site language detected by WordPress. We currently support:
  • Italian (it-IT)
  • English (en-US)
  • Spanish (es-ES)
  • French (fr-FR)
  • German (de-DE)
Voice quality depends on the user's browser and operating system.

The function adds the wpap-no-animations class to the body and sets animation: none !important on all elements. If you have critical animations that must remain active, you can exclude them by adding more specific CSS rules in your theme.

Troubleshooting

The widget doesn't appear on the site

  1. Verify that the plugin is active
  2. Check that the license is valid and active
  3. Make sure the "Show accessibility panel" option is active
  4. Clear site and browser cache
  5. Check the browser console for JavaScript errors

"Invalid license" error

  • Verify you have correctly copied the license key
  • Check that the license hasn't expired
  • Make sure the domain is authorized for this license
  • Try clicking "Verify Now" to update the status

The "Read the page" function doesn't work

  • Verify that the browser supports Web Speech API (see compatibility table)
  • Check that audio is not muted in the browser
  • On some mobile browsers, speech synthesis requires user interaction before working
  • Make sure there are no browser extensions blocking speech synthesis

Conflicts with other plugins

If you encounter compatibility issues:

  1. Temporarily deactivate other plugins one by one
  2. Identify which plugin causes the conflict
  3. Contact support with conflict details

Performance issues

If you notice slowdowns after installation:
  • Verify that your hosting meets minimum requirements
  • Use a caching plugin (W3 Total Cache, WP Rocket)
  • Enable GZIP compression on the server
  • Consider using a CDN
  • If you use "Disable animations", some features like reading line and magnifier might be automatically disabled

Debug mode

To enable debug mode and get more information:

// wp-config.php
define('WPAP_DEBUG', true);

Changelog

Version 3.6.0 LATEST

🌐 Multilingual Accessibility Statement
  • 5 Languages Support: Italiano 🇮🇹, English 🇬🇧, Deutsch 🇩🇪, Français 🇫🇷, Español 🇪🇸
  • Tab Interface: Edit declaration texts for each language directly from the admin panel
  • Default Texts: Each language has professional default texts ready to use
  • Automatic Detection: The widget displays the declaration in the WordPress site language
  • Smart Fallback: If a language is not configured, it uses the default values
✨ New Features
  • Customizable sections per language: Commitment, Approach, Features, Feedback, Limitations
  • Complete features list with all 24 plugin features
  • Common fields (organization, conformance level, date) shared across all languages
🐛 Bug Fix
  • Fixed UTF-8 encoding for emojis in admin notifications
  • Resolved WordPress automatic slashes issue in textarea fields
  • Fixed custom declaration checkbox not saving correctly
  • Improved MutationObserver to prevent declaration duplications

Version 3.5.0 LATEST

New Features
  • Enterprise Icon Customization: Added the ability to change the widget icon for Enterprise plans
Bug Fix
  • Resolved minor bugs

Version 3.4.0 - July 15, 2025 LATEST

🎉 New Accessibility Features
  • 🎙️ "Read the page" (Click to Read):
    • Click on any text to hear it through speech synthesis
    • Automatic multilingual support based on site language
    • Mini player with stop control during reading
    • Visual highlighting of text being read
    • Contextual recognition (announces "Link:", "Button:", etc.)
    • Support for image alternative texts
  • 🚫 "Disable animations":
    • Stops all CSS and JavaScript animations
    • Blocks parallax effects
    • Native support for prefers-reduced-motion
    • Automatically disables smooth scroll
    • Optimized for users with vestibular disorders
🌍 Complete Multilingual Support
  • New Supported Languages:
    • 🇪🇸 Spanish (es_ES)
    • 🇫🇷 French (fr_FR)
    • 🇩🇪 German (de_DE)
    • In addition to 🇮🇹 Italian and 🇬🇧 English already present
  • WPML Integration: Automatic site language detection with full compatibility for WPML, Polylang, TranslatePress and other multilingual plugins
  • Intelligent Fallback System:
    • Exact locale match (e.g: es_ES)
    • Partial match for regional variants (e.g: es_* for any Spanish)
    • Primary fallback to Italian, secondary to English
🎯 Complete Translations
  • All UI strings professionally translated
  • Accessibility statement localized in each language
  • Labels, descriptions and messages fully translated
  • Support for special characters and local formatting
  • Specific messages for new features in all languages
💻 Technical Improvements
  • Automatic WordPress locale detection via get_locale()
  • Dynamic translation loading without performance impact
  • Optimized event listener management for new features
  • Improved screen reader compatibility when "Read the page" is active
🐛 Bug Fixes
  • Improved UTF-8 character handling in all languages
  • Fixed encoding issues with apostrophes and special characters
  • Fixed conflicts with some third-party animations
  • Fixed speech synthesis handling on Safari iOS
  • Fixed text highlighting issue on complex elements
⚡ Performance
  • New features add only ~8KB to widget weight
  • Lazy loading of speech synthesis only when needed
  • Optimizations to reduce CPU usage when animations are disabled
✅ Tested Compatibility
  • WPML 4.6+
  • Polylang 3.5+
  • TranslatePress 2.6+
  • Weglot 4.0+
  • WordPress Multisite with different languages per site
  • All major screen readers (JAWS, NVDA, VoiceOver)

Version 3.3.0 - July 10, 2025

🎉 New Features
  • Mobile Visibility Control: New option to completely hide the widget on mobile devices
  • Custom Section Management: Ability to individually enable/disable each widget section:
    • Accessibility Profiles
    • CONTENT Section
    • COLORS Section
    • ORIENTATION Section
  • Improved Embed Code Generator: New "Visibility" tab for non-WordPress sites
💻 Improvements
  • Redesigned admin interface with new visibility options
  • Intelligent validation ensuring at least one active section
  • 30% optimized performance on mobile when widget is hidden
  • Improved mobile device detection (user agent + touch + screen size)
  • Clearer feedback messages in admin panel
🐛 Bug Fixes
  • Fixed widget settings saving issues
  • Fixed backward compatibility with existing installations
  • Fixed default handling in new installations
  • Fixed CSS conflicts with some WordPress themes
📝 Notes
  • 100% backward compatible update - no action required
  • New options have default values that maintain previous behavior
  • Tested with WordPress 6.7 and PHP 8.3

Version 3.2.1 - July 8, 2025

Improvements
  • Improved compatibility with WordPress 6.7
  • New widget customization options for Pro licenses
  • Added support for OpenDyslexic 3 font
  • Optimized widget performance
Bug Fixes
  • Fixed issue with reading mask on Safari
  • Fixed display on devices with notch

Version 3.2.0 - December 20, 2024

New features
  • Added "Disable animations" control
  • Support for prefers-reduced-motion
  • White label mode for Enterprise licenses

Version 3.1.0 - November 15, 2024

New features
  • Notification system for updates
  • CSS customization for Enterprise
  • Improved mobile interface