---
description: Capacitor plugin to read the user's system accessibility preferences such as font scale, reduce motion, and contrast on Android, iOS, and the Web.
title: Capacitor Accessibility Preferences Plugin - Capawesome
image: https://capawesome.io/docs/assets/images/social/sdks/capacitor/accessibility-preferences.png
---

<!doctype html> 

[Skip to content ](#capacitor-accessibility-preferences-plugin) 

[🖥️ Introducing the **Capacitor Electron Platform** — build desktop apps for macOS, Windows, and Linux. Free & open source. ](/blog/announcing-the-capacitor-electron-platform/) 

* [ SDKs ](/docs/sdks/)
* [ API ](#api)
* [ Platform Availability ](#platform-availability)
* [ FAQ ](#faq)
* [ Related Plugins ](#related-plugins)
* [ Newsletter ](#newsletter)
* [ Changelog ](#changelog)
* [ License ](#license)
* [ Action Sheet ](/docs/sdks/capacitor/action-sheet/)
* [ Age Signals ](/docs/sdks/capacitor/age-signals/)
* [ Alarm ](/docs/sdks/capacitor/alarm/)
* [ Android Battery Optimization ](/docs/sdks/capacitor/android-battery-optimization/)
* [ Android Dark Mode Support ](/docs/sdks/capacitor/android-dark-mode-support/)
* [ Android Edge-to-Edge Support ](/docs/sdks/capacitor/android-edge-to-edge-support/)
* [ Android Foreground Service ](/docs/sdks/capacitor/android-foreground-service/)
* [ Android Intent Launcher ](/docs/sdks/capacitor/android-intent-launcher/)
* [ Android SMS Retriever ](/docs/sdks/capacitor/android-sms-retriever/)
* [ App Icon ](/docs/sdks/capacitor/app-icon/)
* [ App Integrity ](/docs/sdks/capacitor/app-integrity/)
* [ App Language ](/docs/sdks/capacitor/app-language/)
* [ App Launcher ](/docs/sdks/capacitor/app-launcher/)
* [ App Review ](/docs/sdks/capacitor/app-review/)
* [ App Shortcuts ](/docs/sdks/capacitor/app-shortcuts/)
* [ App Tracking Transparency ](/docs/sdks/capacitor/app-tracking-transparency/)
* [ App Update ](/docs/sdks/capacitor/app-update/)
* [ Apple Sign-In ](/docs/sdks/capacitor/apple-sign-in/)
* [ Asset Manager ](/docs/sdks/capacitor/asset-manager/)
* [ Audio Player ](/docs/sdks/capacitor/audio-player/)
* [ Audio Recorder ](/docs/sdks/capacitor/audio-recorder/)
* [ Audio Session ](/docs/sdks/capacitor/audio-session/)
* [ Background Task ](/docs/sdks/capacitor/background-task/)
* [ Badge ](/docs/sdks/capacitor/badge/)
* [ Barometer ](/docs/sdks/capacitor/barometer/)
* [ Battery ](/docs/sdks/capacitor/battery/)
* [ Biometrics ](/docs/sdks/capacitor/biometrics/)
* [ Bluetooth Low Energy ](/docs/sdks/capacitor/bluetooth-low-energy/)
* [ Clipboard ](/docs/sdks/capacitor/clipboard/)
* [ Cloudinary ](/docs/sdks/capacitor/cloudinary/)
* [ Compass ](/docs/sdks/capacitor/compass/)
* [ Contacts ](/docs/sdks/capacitor/contacts/)
* [ Crisp ](/docs/sdks/capacitor/crisp/)
* [ Datetime Picker ](/docs/sdks/capacitor/datetime-picker/)
* [ Device Info ](/docs/sdks/capacitor/device-info/)
* [ Dialog ](/docs/sdks/capacitor/dialog/)
* [ Electron ](/docs/sdks/capacitor/electron/)
* [ Exif ](/docs/sdks/capacitor/exif/)
* [ Facebook Sign-In ](/docs/sdks/capacitor/facebook-sign-in/)
* [ File Compressor ](/docs/sdks/capacitor/file-compressor/)
* [ File Opener ](/docs/sdks/capacitor/file-opener/)
* [ File Picker ](/docs/sdks/capacitor/file-picker/)
* [ Firebase ](/docs/sdks/capacitor/firebase/)
* [ Formbricks ](/docs/sdks/capacitor/formbricks/)
* [ Geocoder ](/docs/sdks/capacitor/geocoder/)
* [ Google Sign-In ](/docs/sdks/capacitor/google-sign-in/)
* [ Grafana Faro ](/docs/sdks/capacitor/grafana-faro/)
* [ Gyroscope ](/docs/sdks/capacitor/gyroscope/)
* [ Haptics ](/docs/sdks/capacitor/haptics/)
* [ Home Indicator ](/docs/sdks/capacitor/home-indicator/)
* [ In-App Browser ](/docs/sdks/capacitor/in-app-browser/)
* [ Install Referrer ](/docs/sdks/capacitor/install-referrer/)
* [ Intercom ](/docs/sdks/capacitor/intercom/)
* [ Intune ](/docs/sdks/capacitor/intune/)
* [ Keep Awake ](/docs/sdks/capacitor/keep-awake/)
* [ libSQL ](/docs/sdks/capacitor/libsql/)
* [ Light Sensor ](/docs/sdks/capacitor/light-sensor/)
* [ Live Update ](/docs/sdks/capacitor/live-update/)
* [ Localization ](/docs/sdks/capacitor/localization/)
* [ Mail Composer ](/docs/sdks/capacitor/mail-composer/)
* [ Managed Configurations ](/docs/sdks/capacitor/managed-configurations/)
* [ Maps Launcher ](/docs/sdks/capacitor/maps-launcher/)
* [ Media Session ](/docs/sdks/capacitor/media-session/)
* [ ML Kit ](/docs/sdks/capacitor/mlkit/)
* [ Navigation Bar ](/docs/sdks/capacitor/navigation-bar/)
* [ Network ](/docs/sdks/capacitor/network/)
* [ NFC ](/docs/sdks/capacitor/nfc/)
* [ Node.js ](/docs/sdks/capacitor/nodejs/)
* [ OAuth ](/docs/sdks/capacitor/oauth/)
* [ Passkeys ](/docs/sdks/capacitor/passkeys/)
* [ Password Autofill ](/docs/sdks/capacitor/password-autofill/)
* [ PDF Generator ](/docs/sdks/capacitor/pdf-generator/)
* [ PDF Viewer ](/docs/sdks/capacitor/pdf-viewer/)
* [ Pedometer ](/docs/sdks/capacitor/pedometer/)
* [ Permissions ](/docs/sdks/capacitor/permissions/)
* [ Phone Dialer ](/docs/sdks/capacitor/phone-dialer/)
* [ Photo Editor ](/docs/sdks/capacitor/photo-editor/)
* [ Photo Manipulator ](/docs/sdks/capacitor/photo-manipulator/)
* [ PixLive ](/docs/sdks/capacitor/pixlive/)
* [ PostHog ](/docs/sdks/capacitor/posthog/)
* [ Printer ](/docs/sdks/capacitor/printer/)
* [ Privacy Screen ](/docs/sdks/capacitor/privacy-screen/)
* [ Proximity Sensor ](/docs/sdks/capacitor/proximity-sensor/)
* [ Purchases ](/docs/sdks/capacitor/purchases/)
* [ RealtimeKit ](/docs/sdks/capacitor/realtimekit/)
* [ Root Detection ](/docs/sdks/capacitor/root-detection/)
* [ Screen Brightness ](/docs/sdks/capacitor/screen-brightness/)
* [ Screen Orientation ](/docs/sdks/capacitor/screen-orientation/)
* [ Screen Reader ](/docs/sdks/capacitor/screen-reader/)
* [ Screenshot ](/docs/sdks/capacitor/screenshot/)
* [ Secure Preferences ](/docs/sdks/capacitor/secure-preferences/)
* [ Settings Launcher ](/docs/sdks/capacitor/settings-launcher/)
* [ Shake ](/docs/sdks/capacitor/shake/)
* [ Silent Mode ](/docs/sdks/capacitor/silent-mode/)
* [ SIM ](/docs/sdks/capacitor/sim/)
* [ SMS Composer ](/docs/sdks/capacitor/sms-composer/)
* [ Speech Recognition ](/docs/sdks/capacitor/speech-recognition/)
* [ Speech Synthesis ](/docs/sdks/capacitor/speech-synthesis/)
* [ Share Target ](/docs/sdks/capacitor/share-target/)
* [ Square Mobile Payments ](/docs/sdks/capacitor/square-mobile-payments/)
* [ SQLite ](/docs/sdks/capacitor/sqlite/)
* [ Superwall ](/docs/sdks/capacitor/superwall/)
* [ System WebView ](/docs/sdks/capacitor/system-webview/)
* [ Tauri ](/docs/sdks/capacitor/tauri/)
* [ Text Interaction ](/docs/sdks/capacitor/text-interaction/)
* [ Text Zoom ](/docs/sdks/capacitor/text-zoom/)
* [ Thermal State ](/docs/sdks/capacitor/thermal-state/)
* [ Toast ](/docs/sdks/capacitor/toast/)
* [ Torch ](/docs/sdks/capacitor/torch/)
* [ Vault ](/docs/sdks/capacitor/vault/)
* [ Volume ](/docs/sdks/capacitor/volume/)
* [ Wallet ](/docs/sdks/capacitor/wallet/)
* [ Wifi ](/docs/sdks/capacitor/wifi/)
* [ YouTube Player ](/docs/sdks/capacitor/youtube-player/)
* [ Zip ](/docs/sdks/capacitor/zip/)
* [ Cordova ](/docs/sdks/cordova/)
* [ Cloud ](/docs/cloud/)
* [ Integrations ](/docs/cloud/live-updates/integrations/)
* Concepts
* Reference
* [ Troubleshooting ](/docs/cloud/live-updates/troubleshooting/)
* [ FAQ ](/docs/cloud/live-updates/faq/)
* [ Native Builds ](/docs/cloud/native-builds/)
* [ Set Up Environments ](/docs/cloud/native-builds/environments/)
* [ Overwrite Native Configurations ](/docs/cloud/native-builds/native-configurations/)
* [ Auto-Increment Build Numbers ](/docs/cloud/native-builds/auto-incrementing-build-numbers/)
* [ Configure the Web Build Script ](/docs/cloud/native-builds/web-build-script/)
* [ Build from a Monorepo ](/docs/cloud/native-builds/monorepo/)
* [ Use pnpm, Yarn, or bun ](/docs/cloud/native-builds/package-managers/)
* [ Install Private npm Packages ](/docs/cloud/native-builds/npm-private-registry/)
* [ Override the Java Version ](/docs/cloud/native-builds/override-java-version/)
* [ Custom iOS Provisioning Profiles ](/docs/cloud/native-builds/custom-ios-provisioning-profiles/)
* [ Build without Git ](/docs/cloud/native-builds/build-without-git/)
* [ Access Git Behind a Firewall ](/docs/cloud/native-builds/firewall-access/)
* [ Integrations ](/docs/cloud/native-builds/integrations/)
* Reference
* [ Troubleshooting ](/docs/cloud/native-builds/troubleshooting/)
* [ FAQ ](/docs/cloud/native-builds/faq/)
* [ App Store Publishing ](/docs/cloud/app-store-publishing/)
* [ Submit a Build ](/docs/cloud/app-store-publishing/submit-a-build/)
* [ Submit Automatically After a Build ](/docs/cloud/app-store-publishing/submit-automatically/)
* [ Troubleshooting ](/docs/cloud/app-store-publishing/troubleshooting/)
* [ FAQ ](/docs/cloud/app-store-publishing/faq/)
* [ Automations ](/docs/cloud/automations/)
* [ Reference ](/docs/cloud/automations/reference/)
* [ Troubleshooting ](/docs/cloud/automations/troubleshooting/)
* [ FAQ ](/docs/cloud/automations/faq/)
* [ Assist ](/docs/cloud/assist/)
* [ CLI ](/docs/cloud/cli/)
* APIs and SDKs
* [ Webhooks ](/docs/cloud/webhooks/)
* [ Integrations ](/docs/cloud/integrations/)
* Account
* [ Organization ](/docs/cloud/organizations/)
* [ Two-Factor Enforcement ](/docs/cloud/organizations/two-factor-authentication/)
* [ Audit Logs ](/docs/cloud/organizations/audit-logs/)
* [ Billing ](/docs/cloud/organizations/billing/)
* [ License Keys ](/docs/cloud/license-keys/)
* [ AI ](/docs/ai/)
* [ Insiders ](/docs/insiders/)
* [ Billing & Plans ](/docs/insiders/billing-and-plans/)
* [ FAQ ](/docs/insiders/faq/)
* [ License ](https://capawesome.io/legal/eula/)
* [ Support ](/docs/support/)
* [ Contributing ](/docs/contributing/)
* Contributing code
* [ Code of Conduct ](/docs/contributing/code-of-conduct/)
* [ Questions ](https://docs.github.com/en/discussions/collaborating-with-your-community-using-discussions/participating-in-a-discussion#creating-a-discussion)
* [ Blog ](/blog/)
* Categories

* [ API ](#api)
* [ Platform Availability ](#platform-availability)
* [ FAQ ](#faq)
* [ Related Plugins ](#related-plugins)
* [ Newsletter ](#newsletter)
* [ Changelog ](#changelog)
* [ License ](#license)

# Capacitor Accessibility Preferences Plugin[¶](#capacitor-accessibility-preferences-plugin "Permanent link")

Capacitor plugin for reading the user's system accessibility preferences.

[ ![Deliver Live Updates to your Capacitor app with Capawesome Cloud](../../../assets/external/cloud.capawesome.io/assets/banners/cloud-build-and-deploy-capacitor-apps.69628c3f.png) ](https://cloud.capawesome.io/) 

## Features[¶](#features "Permanent link")

* ♿ **Accessibility preferences**: Read the user's system accessibility preferences.
* 🔤 **Font scale**: Adapt your typography to the user's preferred text size.
* 🎞️ **Reduce motion**: Disable animations when the user prefers reduced motion.
* 🎨 **Contrast & colors**: React to increased contrast and inverted colors.
* 🌐 **Cross-platform**: Works on Android, iOS, and the Web.
* 📦 **CocoaPods & SPM**: Supports CocoaPods and Swift Package Manager for iOS.
* 🔁 **Up-to-date**: Always supports the latest Capacitor version.

Missing a feature? Just [open an issue](https://github.com/capawesome-team/capacitor-plugins/issues) and we'll take a look!

## Use Cases[¶](#use-cases "Permanent link")

The Accessibility Preferences plugin is typically used to adapt an app's user interface to the user's system accessibility settings, for example:

* **Dynamic typography**: Scale your app's font sizes based on the system font scale so text stays readable for users who prefer larger text.
* **Reduced animations**: Disable or simplify animations and transitions when the user prefers reduced motion.
* **High-contrast themes**: Switch to a higher-contrast color scheme when the user has enabled increased contrast.
* **Bold text support**: Render heavier font weights when the user prefers bold text.
* **Color-aware rendering**: Adjust images or charts when the user has enabled inverted colors.

## Compatibility[¶](#compatibility "Permanent link")

| Plugin Version | Capacitor Version | Status         |
| -------------- | ----------------- | -------------- |
| 0.x.x          | \>=8.x.x          | Active support |

## Installation[¶](#installation "Permanent link")

You can use our **AI-Assisted Setup** to install the plugin. Add the [Capawesome Skills](https://github.com/capawesome-team/skills) to your AI tool using the following command:

`[](#%5F%5Fcodelineno-0-1)npx skills add capawesome-team/skills --skill capacitor-plugins
`

Then use the following prompt:

`` [](#%5F%5Fcodelineno-1-1) Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome/capacitor-accessibility-preferences` plugin in my project.
 ``

If you prefer **Manual Setup**, install the plugin by running the following command:

`[](#%5F%5Fcodelineno-2-1)npm install @capawesome/capacitor-accessibility-preferences
[](#%5F%5Fcodelineno-2-2)npx cap sync
`

This plugin does not require any additional permissions or configuration.

## Configuration[¶](#configuration "Permanent link")

No configuration required for this plugin.

## Usage[¶](#usage "Permanent link")

The following example shows how to read the user's system accessibility preferences.

### Read the user's accessibility preferences[¶](#read-the-users-accessibility-preferences "Permanent link")

Call `getPreferences()` to read all system accessibility preferences at once, such as the font scale, reduce motion, bold text, and contrast settings. Fields that the current platform cannot provide are set to `null` (see [Platform Availability](#platform-availability)):

`[](#%5F%5Fcodelineno-3-1)import { AccessibilityPreferences } from '@capawesome/capacitor-accessibility-preferences';
[](#%5F%5Fcodelineno-3-2)
[](#%5F%5Fcodelineno-3-3)const getPreferences = async () => {
[](#%5F%5Fcodelineno-3-4)  const preferences = await AccessibilityPreferences.getPreferences();
[](#%5F%5Fcodelineno-3-5)  return preferences;
[](#%5F%5Fcodelineno-3-6)};
`

## API[¶](#api "Permanent link")

* [getPreferences()](#getpreferences)
* [Interfaces](#interfaces)

### getPreferences()[¶](#getpreferences "Permanent link")

`[](#%5F%5Fcodelineno-4-1)getPreferences() => Promise<GetPreferencesResult>
`

Get the user's current system accessibility preferences.

Fields that the current platform cannot provide are set to `null`.

**Returns:** `Promise<[GetPreferencesResult](#getpreferencesresult)>`

**Since:** 0.1.0

---

### Interfaces[¶](#interfaces "Permanent link")

#### GetPreferencesResult[¶](#getpreferencesresult "Permanent link")

| Prop                            | Type            | Description                                                                                                                                                                                                                                                                                                                                   | Since |
| ------------------------------- | --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----- |
| **fontScale**                   | number          | The system font scale factor. A value of 1.0 represents the default font size. Values greater than 1.0 indicate that the user prefers larger text, values less than 1.0 smaller text. On iOS, the value is derived from the preferred content size category. On Web, this is always 1.0 because the font scale is not exposed to web content. | 0.1.0 |
| **isBoldTextEnabled**           | boolean \| null | Whether the user prefers bold text. Returns null on platforms where the value cannot be read (Web and Android versions below 12).                                                                                                                                                                                                             | 0.1.0 |
| **isHighContrastEnabled**       | boolean \| null | Whether the user prefers increased contrast. On iOS, this reflects the "Increase Contrast" setting (darker system colors). On Android, this reflects the high text contrast setting. Returns null on platforms where the value cannot be read.                                                                                                | 0.1.0 |
| **isInvertColorsEnabled**       | boolean \| null | Whether the user has enabled inverted colors. Returns null on Web.                                                                                                                                                                                                                                                                            | 0.1.0 |
| **isReduceMotionEnabled**       | boolean         | Whether the user prefers reduced motion (fewer animations).                                                                                                                                                                                                                                                                                   | 0.1.0 |
| **isReduceTransparencyEnabled** | boolean \| null | Whether the user prefers reduced transparency. Only available on iOS. Returns null on Android and Web.                                                                                                                                                                                                                                        | 0.1.0 |

## Platform Availability[¶](#platform-availability "Permanent link")

Not every preference can be read on every platform. Fields that the current platform cannot provide are set to `null`.

| Field                       | Android     | iOS | Web  |
| --------------------------- | ----------- | --- | ---- |
| fontScale                   | ✅           | ✅   | ⚠️\* |
| isReduceMotionEnabled       | ✅           | ✅   | ✅    |
| isBoldTextEnabled           | ✅ (API 31+) | ✅   | ❌    |
| isInvertColorsEnabled       | ✅           | ✅   | ❌    |
| isReduceTransparencyEnabled | ❌           | ✅   | ❌    |
| isHighContrastEnabled       | ✅           | ✅   | ✅    |

✅ = available · ❌ = always `null` · ⚠️\* = `fontScale` is always `1.0` on Web because it is not exposed to web content.

On iOS, `fontScale` is derived from the preferred content size category using the following mapping (relative to the default body text size of 17 pt):

| Content size category           | fontScale |
| ------------------------------- | --------- |
| Extra Small                     | 0.82      |
| Small                           | 0.88      |
| Medium                          | 0.94      |
| Large (default)                 | 1.0       |
| Extra Large                     | 1.12      |
| Extra Extra Large               | 1.24      |
| Extra Extra Extra Large         | 1.35      |
| Accessibility Medium            | 1.65      |
| Accessibility Large             | 1.94      |
| Accessibility Extra Large       | 2.35      |
| Accessibility Extra Extra Large | 2.76      |
| Accessibility 3X Large          | 3.12      |

CSS media queries such as `prefers-reduced-motion` and `prefers-contrast` already cover reduce-motion and contrast inside the WebView. The value of this plugin is the fields CSS cannot see (`fontScale`, bold text, inverted colors) and having a single API for your app logic on all platforms.

The screen reader _state_ (VoiceOver/TalkBack) is intentionally out of scope. Use the official [@capacitor/screen-reader](https://capacitorjs.com/docs/apis/screen-reader) plugin for that.

## FAQ[¶](#faq "Permanent link")

### Which accessibility preferences can be read on which platforms?[¶](#which-accessibility-preferences-can-be-read-on-which-platforms "Permanent link")

Not every preference is exposed on every platform. The font scale, reduce motion, and high contrast settings are available on Android, iOS, and the Web, while bold text (Android 12+ and iOS), inverted colors (Android and iOS), and reduced transparency (iOS only) are more limited. Check the [Platform Availability](#platform-availability) section for the complete matrix.

### Why is the font scale always 1.0 on the Web?[¶](#why-is-the-font-scale-always-10-on-the-web "Permanent link")

The system font scale is not exposed to web content, so the plugin cannot read it in a browser. On Android, the plugin returns the system font scale factor, and on iOS the value is derived from the preferred content size category.

### Why are some fields null in the result?[¶](#why-are-some-fields-null-in-the-result "Permanent link")

Fields that the current platform cannot provide are set to `null` instead of a fabricated value. For example, `isBoldTextEnabled` is `null` on the Web and on Android versions below 12, and `isReduceTransparencyEnabled` is `null` on Android and Web because it is an iOS-only setting.

### Do I still need this plugin if I use CSS media queries like prefers-reduced-motion?[¶](#do-i-still-need-this-plugin-if-i-use-css-media-queries-like-prefers-reduced-motion "Permanent link")

CSS media queries such as `prefers-reduced-motion` and `prefers-contrast` already cover reduce motion and contrast inside the WebView. The value of this plugin lies in the fields CSS cannot see, such as the font scale, bold text, and inverted colors, and in having a single API for your app logic on all platforms.

### Can this plugin detect whether a screen reader like VoiceOver or TalkBack is running?[¶](#can-this-plugin-detect-whether-a-screen-reader-like-voiceover-or-talkback-is-running "Permanent link")

No, the screen reader state is intentionally out of scope for this plugin. Use the official [@capacitor/screen-reader](https://capacitorjs.com/docs/apis/screen-reader) plugin for that.

### Can I use this plugin with Ionic, React, Vue or Angular?[¶](#can-i-use-this-plugin-with-ionic-react-vue-or-angular "Permanent link")

Yes, the plugin is framework-agnostic. It works in any Capacitor app regardless of the web framework, including Ionic with Angular, React, or Vue, as well as plain JavaScript projects.

## Related Plugins[¶](#related-plugins "Permanent link")

* [Screen Reader](https://capawesome.io/docs/sdks/capacitor/screen-reader/): Interact with screen readers such as VoiceOver and TalkBack.
* [Text Zoom](https://capawesome.io/docs/sdks/capacitor/text-zoom/): Read and control the WebView text zoom.
* [Localization](https://capawesome.io/docs/sdks/capacitor/localization/): Read the user's localization preferences, such as preferred locales and time zone.

## Newsletter[¶](#newsletter "Permanent link")

Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/).

## Changelog[¶](#changelog "Permanent link")

See [CHANGELOG.md](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/accessibility-preferences/CHANGELOG.md).

## License[¶](#license "Permanent link")

See [LICENSE](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/accessibility-preferences/LICENSE).

July 8, 2026 

Back to top

```json
{"@context": "https://schema.org", "@graph": [{"@type": "TechArticle", "@id": "https://capawesome.io/docs/sdks/capacitor/accessibility-preferences/#article", "headline": "Capacitor Accessibility Preferences Plugin", "name": "Capacitor Accessibility Preferences Plugin", "description": "Capacitor plugin to read the user's system accessibility preferences such as font scale, reduce motion, and contrast on Android, iOS, and the Web.", "inLanguage": "en", "url": "https://capawesome.io/docs/sdks/capacitor/accessibility-preferences/", "mainEntityOfPage": "https://capawesome.io/docs/sdks/capacitor/accessibility-preferences/", "author": {"@type": "Organization", "name": "Capawesome", "url": "https://capawesome.io", "logo": {"@type": "ImageObject", "url": "https://capawesome.io/assets/images/logo.svg"}}, "publisher": {"@type": "Organization", "name": "Capawesome", "url": "https://capawesome.io", "logo": {"@type": "ImageObject", "url": "https://capawesome.io/assets/images/logo.svg"}}, "about": {"@id": "https://capawesome.io/docs/sdks/capacitor/accessibility-preferences/#software"}}, {"@type": "SoftwareSourceCode", "@id": "https://capawesome.io/docs/sdks/capacitor/accessibility-preferences/#software", "name": "Capacitor Accessibility Preferences Plugin", "description": "Capacitor plugin to read the user's system accessibility preferences such as font scale, reduce motion, and contrast on Android, iOS, and the Web.", "url": "https://capawesome.io/docs/sdks/capacitor/accessibility-preferences/", "programmingLanguage": "TypeScript", "runtimePlatform": "Capacitor", "codeRepository": "https://github.com/capawesome-team", "author": {"@type": "Organization", "name": "Capawesome", "url": "https://capawesome.io", "logo": {"@type": "ImageObject", "url": "https://capawesome.io/assets/images/logo.svg"}}, "publisher": {"@type": "Organization", "name": "Capawesome", "url": "https://capawesome.io", "logo": {"@type": "ImageObject", "url": "https://capawesome.io/assets/images/logo.svg"}}}]}
{"@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{"@type": "Question", "name": "Which accessibility preferences can be read on which platforms?", "acceptedAnswer": {"@type": "Answer", "text": "Not every preference is exposed on every platform. The font scale, reduce motion, and high contrast settings are available on Android, iOS, and the Web, while bold text (Android 12+ and iOS), inverted colors (Android and iOS), and reduced transparency (iOS only) are more limited. Check the Platform Availability section for the complete matrix."}}, {"@type": "Question", "name": "Why is the font scale always 1.0 on the Web?", "acceptedAnswer": {"@type": "Answer", "text": "The system font scale is not exposed to web content, so the plugin cannot read it in a browser. On Android, the plugin returns the system font scale factor, and on iOS the value is derived from the preferred content size category."}}, {"@type": "Question", "name": "Why are some fields null in the result?", "acceptedAnswer": {"@type": "Answer", "text": "Fields that the current platform cannot provide are set to null instead of a fabricated value. For example, isBoldTextEnabled is null on the Web and on Android versions below 12, and isReduceTransparencyEnabled is null on Android and Web because it is an iOS-only setting."}}, {"@type": "Question", "name": "Do I still need this plugin if I use CSS media queries like prefers-reduced-motion?", "acceptedAnswer": {"@type": "Answer", "text": "CSS media queries such as prefers-reduced-motion and prefers-contrast already cover reduce motion and contrast inside the WebView. The value of this plugin lies in the fields CSS cannot see, such as the font scale, bold text, and inverted colors, and in having a single API for your app logic on all platforms."}}, {"@type": "Question", "name": "Can this plugin detect whether a screen reader like VoiceOver or TalkBack is running?", "acceptedAnswer": {"@type": "Answer", "text": "No, the screen reader state is intentionally out of scope for this plugin. Use the official @capacitor/screen-reader plugin for that."}}, {"@type": "Question", "name": "Can I use this plugin with Ionic, React, Vue or Angular?", "acceptedAnswer": {"@type": "Answer", "text": "Yes, the plugin is framework-agnostic. It works in any Capacitor app regardless of the web framework, including Ionic with Angular, React, or Vue, as well as plain JavaScript projects."}}], "url": "https://capawesome.io/docs/sdks/capacitor/accessibility-preferences/"}
```
