{"_id":"@capawesome/capacitor-screen-reader","_rev":"4-0e50abc9391008f5fe563bd90432ec52","name":"@capawesome/capacitor-screen-reader","dist-tags":{"latest":"0.1.2"},"versions":{"0.0.1":{"name":"@capawesome/capacitor-screen-reader","version":"0.0.1","keywords":["capacitor","plugin","native","screen reader","accessibility","voiceover","talkback"],"author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"license":"MIT","_id":"@capawesome/capacitor-screen-reader@0.0.1","maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"homepage":"https://capawesome.io/docs/sdks/capacitor/screen-reader/","bugs":{"url":"https://github.com/capawesome-team/capacitor-plugins/issues"},"dist":{"shasum":"561f078a1a7d940140399cd56694e0c11bb6760b","tarball":"https://registry.npmjs.org/@capawesome/capacitor-screen-reader/-/capacitor-screen-reader-0.0.1.tgz","fileCount":41,"integrity":"sha512-aHeVjTSHUtaCUjFE5z9ntgwXH3kePk3NnTfJ32QssxU8PvHoz+m6IRXykSi1oi2sauDre4DkpkOmOW5i3B4Tmw==","signatures":[{"sig":"MEUCIFbHgEi1uT1NcwFUfrFEifcd/wp7x+pQzKKxVhlT0oiIAiEA+dRa+Cus+VW29eQLxNwv8u2Qw71NGubIVBXK1r46JQ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63684},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","funding":[{"url":"https://github.com/sponsors/capawesome-team/","type":"github"},{"url":"https://opencollective.com/capawesome","type":"opencollective"}],"gitHead":"e18228f8362b044cd453aba542fe8e0a02fd996f","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api ScreenReaderPlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && pod install && xcodebuild -workspace Plugin.xcworkspace -scheme Plugin -destination generic/platform=iOS && cd ..","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd ..","ios:pod:install":"cd ios && pod install --repo-update && cd ..","ios:spm:install":"cd ios && swift package resolve && cd .."},"_npmUser":{"name":"robingenz","email":"mail@robingenz.dev"},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"repository":{"url":"git+https://github.com/capawesome-team/capacitor-plugins.git","type":"git"},"_npmVersion":"11.13.0","description":"Capacitor plugin to interact with screen readers.","directories":{},"_nodeVersion":"24.16.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"8.57.0","rimraf":"6.1.2","rollup":"4.53.3","swiftlint":"2.0.0","typescript":"5.9.3","@capacitor/cli":"8.0.0","@capacitor/ios":"8.0.0","@capacitor/core":"8.0.0","@capacitor/docgen":"0.3.1","@capacitor/android":"8.0.0","@ionic/eslint-config":"0.4.0","prettier-plugin-java":"2.6.7"},"peerDependencies":{"@capacitor/core":">=8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-screen-reader_0.0.1_1783426854905_0.3426673006313845","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@capawesome/capacitor-screen-reader","version":"0.1.0","keywords":["capacitor","plugin","native","screen reader","accessibility","voiceover","talkback","capacitor-plugin","a11y","accessibility announcement","screen reader detection","aria-live","assistive technology"],"author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"license":"MIT","_id":"@capawesome/capacitor-screen-reader@0.1.0","maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"homepage":"https://capawesome.io/docs/sdks/capacitor/screen-reader/","bugs":{"url":"https://github.com/capawesome-team/capacitor-plugins/issues"},"dist":{"shasum":"a45e566d33c86a22939d1e482d601c653d5fb673","tarball":"https://registry.npmjs.org/@capawesome/capacitor-screen-reader/-/capacitor-screen-reader-0.1.0.tgz","fileCount":41,"integrity":"sha512-IgTfKqU6WJ+dEiuDQ6d6dk2Yh7J2VZf4NGgHF3tX9r1t9sLOUt1ZBVfzqhDa63wVqRFbT/7yGwPMddU6hLj7gg==","signatures":[{"sig":"MEUCIE0dCQozgj0tWkJkgZMRLYTYPmsHFUz8PiU3e++NOKSZAiEAuzzlOn5dN4lh7cqYUpYF5zIPVL0tr+pmmCa5/HcBAfA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capawesome%2fcapacitor-screen-reader@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":68281},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","funding":[{"url":"https://github.com/sponsors/capawesome-team/","type":"github"},{"url":"https://opencollective.com/capawesome","type":"opencollective"}],"gitHead":"1ce17b1fd14c43b2f1d5d3c2da82221e1d1dca37","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api ScreenReaderPlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && pod install && xcodebuild -workspace Plugin.xcworkspace -scheme Plugin -destination generic/platform=iOS && cd ..","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd ..","ios:pod:install":"cd ios && pod install --repo-update && cd ..","ios:spm:install":"cd ios && swift package resolve && cd .."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5ce7f82d-3da1-4b76-8a02-40131724ae66"}},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"repository":{"url":"git+https://github.com/capawesome-team/capacitor-plugins.git","type":"git"},"_npmVersion":"11.16.0","description":"Capacitor plugin to interact with screen readers on Android, iOS, and Web.","directories":{},"_nodeVersion":"24.18.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"8.57.0","rimraf":"6.1.2","rollup":"4.53.3","swiftlint":"2.0.0","typescript":"5.9.3","@capacitor/cli":"8.0.0","@capacitor/ios":"8.0.0","@capacitor/core":"8.0.0","@capacitor/docgen":"0.3.1","@capacitor/android":"8.0.0","@ionic/eslint-config":"0.4.0","prettier-plugin-java":"2.6.7"},"peerDependencies":{"@capacitor/core":">=8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-screen-reader_0.1.0_1784015601777_0.2470215031107852","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@capawesome/capacitor-screen-reader","version":"0.1.1","keywords":["capacitor","plugin","native","screen reader","accessibility","voiceover","talkback","capacitor-plugin","a11y","accessibility announcement","screen reader detection","aria-live","assistive technology"],"author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"license":"MIT","_id":"@capawesome/capacitor-screen-reader@0.1.1","maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"homepage":"https://capawesome.io/docs/sdks/capacitor/screen-reader/","bugs":{"url":"https://github.com/capawesome-team/capacitor-plugins/issues"},"dist":{"shasum":"aff3c2f9a8326efb3c1663cc4b97c28423cb88f2","tarball":"https://registry.npmjs.org/@capawesome/capacitor-screen-reader/-/capacitor-screen-reader-0.1.1.tgz","fileCount":41,"integrity":"sha512-4wdN3NTgXXsWb1a8Op2n7FmppbGBVnqlT+dfYCSiSP7uQh0MsQPiC4/gjxSVrJU1AcA7hMzgrEaHxraqgiRk/w==","signatures":[{"sig":"MEUCIDLbW46Qxma/pp1lfz37ECN2am7h8+cItB5grjxor3UVAiEA7VZRp/O/438f3j+rvKF9PSG6eAZxlnJRZqUIfoYalHM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capawesome%2fcapacitor-screen-reader@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":68290},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","funding":[{"url":"https://github.com/sponsors/capawesome-team/","type":"github"},{"url":"https://opencollective.com/capawesome","type":"opencollective"}],"gitHead":"3e61f4b412f9f3f512c21169bb135bbb23a67e6d","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api ScreenReaderPlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && pod install && xcodebuild -workspace Plugin.xcworkspace -scheme Plugin -destination generic/platform=iOS && cd ..","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd ..","ios:pod:install":"cd ios && pod install --repo-update && cd ..","ios:spm:install":"cd ios && swift package resolve && cd .."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5ce7f82d-3da1-4b76-8a02-40131724ae66"}},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"repository":{"url":"git+https://github.com/capawesome-team/capacitor-plugins.git","type":"git"},"_npmVersion":"11.16.0","description":"Capacitor plugin to interact with screen readers on Android, iOS, and Web.","directories":{},"_nodeVersion":"24.18.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"8.57.0","rimraf":"6.1.2","rollup":"4.53.3","swiftlint":"2.0.0","typescript":"5.9.3","@capacitor/cli":"8.0.0","@capacitor/ios":"8.0.0","@capacitor/core":"8.0.0","@capacitor/docgen":"0.3.1","@capacitor/android":"8.0.0","@ionic/eslint-config":"0.4.0","prettier-plugin-java":"2.6.7"},"peerDependencies":{"@capacitor/core":">=8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-screen-reader_0.1.1_1784103055394_0.4719515706379358","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"_id":"@capawesome/capacitor-screen-reader@0.1.2","bugs":{"url":"https://github.com/capawesome-team/capacitor-plugins/issues"},"dist":{"shasum":"d5dd2e2e3e5e7ebd2a2497317e6d83111a6179eb","tarball":"https://registry.npmjs.org/@capawesome/capacitor-screen-reader/-/capacitor-screen-reader-0.1.2.tgz","fileCount":41,"integrity":"sha512-vg1q/wuRXo7V7a5X5TbFKJUnP/9zSUzjcBryAmc8I1BuLzj2cT2/NhKhnzh5a0+7FqUsX3MIKb5Mmy26Lp6rhA==","signatures":[{"sig":"MEUCIQCMcdfzGL6ofUIdoKmaTvYpQuQ7iy8IUuLyoaOwSLjCBAIgPLWw19QzY2ZHco2AUgXzWQaXurakRIZ5iLBILcspfkk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDNP0o98MpdfHZpfO8/M2t5VPgMkatZh6XuCkh3RWnKbAiBuC8kPRv+r9DTJ0+vQef64F4qmuCP1SGFmK4NpVRjrfQ=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capawesome%2fcapacitor-screen-reader@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":68136},"main":"dist/plugin.cjs.js","name":"@capawesome/capacitor-screen-reader","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"module":"dist/esm/index.js","funding":[{"url":"https://github.com/sponsors/capawesome-team/","type":"github"},{"url":"https://opencollective.com/capawesome","type":"opencollective"}],"gitHead":"7c1937ed10b7de86ca2c1cdc3539a2735fd69a00","license":"MIT","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api ScreenReaderPlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && pod install && xcodebuild -workspace Plugin.xcworkspace -scheme Plugin -destination generic/platform=iOS && cd ..","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd ..","ios:pod:install":"cd ios && pod install --repo-update && cd ..","ios:spm:install":"cd ios && swift package resolve && cd .."},"version":"0.1.2","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5ce7f82d-3da1-4b76-8a02-40131724ae66"}},"homepage":"https://capawesome.io/docs/sdks/capacitor/screen-reader/","keywords":["capacitor","plugin","native","screen reader","accessibility","voiceover","talkback","capacitor-plugin","a11y","accessibility announcement","screen reader detection","aria-live","assistive technology"],"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"repository":{"url":"git+https://github.com/capawesome-team/capacitor-plugins.git","type":"git"},"_npmVersion":"11.17.0","description":"Capacitor plugin to interact with screen readers on Android, iOS, and Web.","directories":{},"maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"_nodeVersion":"24.19.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"8.57.0","rimraf":"6.1.2","rollup":"4.62.3","swiftlint":"2.0.0","typescript":"5.9.3","@capacitor/cli":"8.4.2","@capacitor/ios":"8.0.0","@capacitor/core":"8.0.0","@capacitor/docgen":"0.3.1","@capacitor/android":"8.0.0","@ionic/eslint-config":"0.4.0","prettier-plugin-java":"2.9.7"},"peerDependencies":{"@capacitor/core":">=8.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/capacitor-screen-reader_0.1.2_1788337502929_0.49851195219269706"}}},"time":{"created":"2026-07-07T12:20:54.728Z","modified":"2026-09-02T08:25:03.458Z","0.0.1":"2026-07-07T12:20:55.046Z","0.1.0":"2026-07-14T07:53:21.907Z","0.1.1":"2026-07-15T08:10:55.643Z","0.1.2":"2026-09-02T08:25:03.028Z"},"bugs":{"url":"https://github.com/capawesome-team/capacitor-plugins/issues"},"author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"license":"MIT","homepage":"https://capawesome.io/docs/sdks/capacitor/screen-reader/","keywords":["capacitor","plugin","native","screen reader","accessibility","voiceover","talkback","capacitor-plugin","a11y","accessibility announcement","screen reader detection","aria-live","assistive technology"],"repository":{"url":"git+https://github.com/capawesome-team/capacitor-plugins.git","type":"git"},"description":"Capacitor plugin to interact with screen readers on Android, iOS, and Web.","maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"readme":"# Capacitor Screen Reader Plugin\n\nCapacitor plugin to interact with screen readers.\n\n<div class=\"capawesome-z29o10a\">\n  <a href=\"https://cloud.capawesome.io/\" target=\"_blank\">\n    <img alt=\"Deliver Live Updates to your Capacitor app with Capawesome Cloud\" src=\"https://cloud.capawesome.io/assets/banners/cloud-build-and-deploy-capacitor-apps.png?t=1\" />\n  </a>\n</div>\n\n## Features\n\n- 🔎 **Detection**: Check whether a screen reader (VoiceOver/TalkBack) is currently enabled.\n- 📣 **Announcements**: Post accessibility announcements that are read out by the active screen reader.\n- 🔔 **State changes**: Listen for changes to the enabled state of the screen reader.\n- 🖥️ **Cross-platform**: Supports Android, iOS and the web.\n- 🤝 **Compatibility**: Works alongside the [Accessibility Preferences](https://capawesome.io/docs/sdks/capacitor/accessibility-preferences/) and [Speech Synthesis](https://capawesome.io/docs/sdks/capacitor/speech-synthesis/) plugins.\n- 🔁 **Up-to-date**: Always supports the latest Capacitor version.\n\nMissing a feature? Just [open an issue](https://github.com/capawesome-team/capacitor-plugins/issues) and we'll take a look!\n\n> [!NOTE]\n> This plugin does **not** perform text-to-speech. The `announce(...)` method posts an accessibility announcement that is only read out when a screen reader is active. If you are looking for real text-to-speech, use the [Speech Synthesis](https://capawesome.io/docs/sdks/capacitor/speech-synthesis/) plugin instead.\n\n## Use Cases\n\nThe Screen Reader plugin is typically used to make apps more accessible for users of VoiceOver and TalkBack, for example:\n\n- **Accessible status updates**: Announce dynamic changes such as \"The item was added to your cart.\" that would otherwise go unnoticed by screen reader users.\n- **Adaptive user interfaces**: Check whether a screen reader is enabled and adapt your UI accordingly, for example by simplifying gestures or animations.\n- **Reacting to state changes**: Listen for changes to the enabled state of the screen reader and adjust your app's behavior on the fly.\n- **Localized announcements**: Provide the language of an announcement on Android so the screen reader pronounces it correctly.\n\n## Compatibility\n\n| Plugin Version | Capacitor Version | Status         |\n| -------------- | ----------------- | -------------- |\n| 0.x.x          | >=8.x.x           | Active support |\n\n## Installation\n\nYou can use our **AI-Assisted Setup** to install the plugin.\nAdd the [Capawesome Skills](https://github.com/capawesome-team/skills) to your AI tool using the following command:\n\n```bash\nnpx skills add capawesome-team/skills --skill capacitor-plugins\n```\n\nThen use the following prompt:\n\n```\n Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome/capacitor-screen-reader` plugin in my project.\n```\n\nIf you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below:\n\n```bash\nnpm install @capawesome/capacitor-screen-reader\nnpx cap sync\n```\n\n### Android\n\nNo additional configuration is required for this plugin.\n\n### iOS\n\nNo additional configuration is required for this plugin.\n\n## Configuration\n\nNo configuration required for this plugin.\n\n## Usage\n\nThe following examples show how to post an accessibility announcement, check whether a screen reader is enabled, and listen for screen reader state changes.\n\n### Post an accessibility announcement\n\nPost an announcement that is read out by the active screen reader (VoiceOver/TalkBack). Note that this does not perform text-to-speech; the message is only read out if a screen reader is running:\n\n```typescript\nimport { ScreenReader } from '@capawesome/capacitor-screen-reader';\n\nconst announce = async () => {\n  await ScreenReader.announce({\n    value: 'The item was added to your cart.',\n  });\n};\n```\n\n### Check whether a screen reader is enabled\n\nCheck whether a screen reader is currently enabled. Only available on Android and iOS:\n\n```typescript\nimport { ScreenReader } from '@capawesome/capacitor-screen-reader';\n\nconst isEnabled = async () => {\n  const { enabled } = await ScreenReader.isEnabled();\n  return enabled;\n};\n```\n\n### Listen for screen reader state changes\n\nGet notified when the screen reader is enabled or disabled. Only available on Android and iOS:\n\n```typescript\nimport { ScreenReader } from '@capawesome/capacitor-screen-reader';\n\nconst addStateChangeListener = async () => {\n  await ScreenReader.addListener('stateChange', event => {\n    console.log('Screen reader enabled:', event.enabled);\n  });\n};\n\nconst removeAllListeners = async () => {\n  await ScreenReader.removeAllListeners();\n};\n```\n\n## API\n\n<docgen-index>\n\n* [`announce(...)`](#announce)\n* [`isEnabled()`](#isenabled)\n* [`addListener('stateChange', ...)`](#addlistenerstatechange-)\n* [`removeAllListeners()`](#removealllisteners)\n* [Interfaces](#interfaces)\n\n</docgen-index>\n\n<docgen-api>\n<!--Update the source file JSDoc comments and rerun docgen to update the docs below-->\n\n### announce(...)\n\n```typescript\nannounce(options: AnnounceOptions) => Promise<void>\n```\n\nPost an accessibility announcement to the active screen reader.\n\nThis does **not** perform text-to-speech. It posts an announcement that is\nread out by the screen reader (VoiceOver/TalkBack) if one is active. For\nreal text-to-speech, use the [Speech Synthesis](https://capawesome.io/docs/sdks/capacitor/speech-synthesis/)\nplugin instead.\n\nOn the web, the announcement is made through a visually hidden\n`aria-live` region, so it is only read out if the user has a screen reader\nrunning.\n\n| Param         | Type                                                        |\n| ------------- | ----------------------------------------------------------- |\n| **`options`** | <code><a href=\"#announceoptions\">AnnounceOptions</a></code> |\n\n**Since:** 0.1.0\n\n--------------------\n\n\n### isEnabled()\n\n```typescript\nisEnabled() => Promise<IsEnabledResult>\n```\n\nCheck whether a screen reader is currently enabled.\n\nOn Android, this refers to whether touch exploration (TalkBack) is enabled.\nOn iOS, this refers to whether VoiceOver is running.\n\nOnly available on Android and iOS.\n\n**Returns:** <code>Promise&lt;<a href=\"#isenabledresult\">IsEnabledResult</a>&gt;</code>\n\n**Since:** 0.1.0\n\n--------------------\n\n\n### addListener('stateChange', ...)\n\n```typescript\naddListener(eventName: 'stateChange', listenerFunc: (event: StateChangeEvent) => void) => Promise<PluginListenerHandle>\n```\n\nListen for changes to the enabled state of the screen reader.\n\nThe device is only observed while at least one listener is attached.\n\nOnly available on Android and iOS.\n\n| Param              | Type                                                                              |\n| ------------------ | --------------------------------------------------------------------------------- |\n| **`eventName`**    | <code>'stateChange'</code>                                                        |\n| **`listenerFunc`** | <code>(event: <a href=\"#statechangeevent\">StateChangeEvent</a>) =&gt; void</code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#pluginlistenerhandle\">PluginListenerHandle</a>&gt;</code>\n\n**Since:** 0.1.0\n\n--------------------\n\n\n### removeAllListeners()\n\n```typescript\nremoveAllListeners() => Promise<void>\n```\n\nRemove all listeners for this plugin.\n\n**Since:** 0.1.0\n\n--------------------\n\n\n### Interfaces\n\n\n#### AnnounceOptions\n\n| Prop           | Type                | Description                                                                                                                                    | Since |\n| -------------- | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ----- |\n| **`value`**    | <code>string</code> | The message to announce.                                                                                                                       | 0.1.0 |\n| **`language`** | <code>string</code> | The language of the message as a BCP 47 language tag. This helps the screen reader pronounce the message correctly. Only available on Android. | 0.1.0 |\n\n\n#### IsEnabledResult\n\n| Prop          | Type                 | Description                                   | Since |\n| ------------- | -------------------- | --------------------------------------------- | ----- |\n| **`enabled`** | <code>boolean</code> | Whether a screen reader is currently enabled. | 0.1.0 |\n\n\n#### PluginListenerHandle\n\n| Prop         | Type                                      |\n| ------------ | ----------------------------------------- |\n| **`remove`** | <code>() =&gt; Promise&lt;void&gt;</code> |\n\n\n#### StateChangeEvent\n\n| Prop          | Type                 | Description                                   | Since |\n| ------------- | -------------------- | --------------------------------------------- | ----- |\n| **`enabled`** | <code>boolean</code> | Whether a screen reader is currently enabled. | 0.1.0 |\n\n</docgen-api>\n\n## Migrating from `@capacitor/screen-reader`\n\nThis plugin is a drop-in replacement for the official `@capacitor/screen-reader` plugin with a few naming changes:\n\n| `@capacitor/screen-reader`        | Screen Reader                     |\n| --------------------------------- | --------------------------------- |\n| `speak({ value, language })`      | `announce({ value, language })`   |\n| `isEnabled()`                     | `isEnabled()`                     |\n| `addListener('stateChange', ...)` | `addListener('stateChange', ...)` |\n\nThe `speak(...)` method has been renamed to `announce(...)` to make it clear that it posts an accessibility announcement to the active screen reader and does **not** perform text-to-speech. For real text-to-speech, use the [Speech Synthesis](https://capawesome.io/docs/sdks/capacitor/speech-synthesis/) plugin instead.\n\n## FAQ\n\n### How is this plugin different from other similar plugins?\n\nIt focuses on real accessibility work with VoiceOver and TalkBack: you can post announcements, check whether a screen reader is enabled, and listen for state changes, with the device observed only while a listener is attached. Announcements work on Android, iOS, and the web, where they use a visually hidden `aria-live` region, and on Android you can provide the announcement language so it is pronounced correctly. The API is fully typed, is actively maintained against the latest Capacitor version, and pairs naturally with the Accessibility Preferences and Speech Synthesis plugins for a complete accessibility toolkit.\n\n### Does the announce method perform text-to-speech?\n\nNo. The `announce(...)` method posts an accessibility announcement that is only read out by the screen reader (VoiceOver/TalkBack) if one is active. If you are looking for real text-to-speech that always speaks, use the [Speech Synthesis](https://capawesome.io/docs/sdks/capacitor/speech-synthesis/) plugin instead.\n\n### Why is my announcement not read out?\n\nAnnouncements are only read out when a screen reader is active. On Android and iOS, make sure TalkBack or VoiceOver is enabled. On the Web, the announcement is made through a visually hidden `aria-live` region, so it is only read out if the user has a screen reader running.\n\n### Can I check whether a screen reader is enabled on the Web?\n\nNo. The `isEnabled()` method and the `stateChange` listener are only available on Android and iOS. Browsers do not expose whether a screen reader is running. The `announce(...)` method, however, also works on the Web via an `aria-live` region.\n\n### How is this plugin different from the official @capacitor/screen-reader plugin?\n\nThis plugin is a drop-in replacement for the official `@capacitor/screen-reader` plugin with a few naming changes. Most notably, the `speak(...)` method has been renamed to `announce(...)` to make it clear that it posts an accessibility announcement and does not perform text-to-speech. See the [migration guide](#migrating-from-capacitorscreen-reader) above for a complete mapping.\n\n### Can I use this plugin with Ionic, React, Vue or Angular?\n\nYes, 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.\n\n## Related Plugins\n\n- [Accessibility Preferences](https://capawesome.io/docs/sdks/capacitor/accessibility-preferences/): Read the user's system accessibility preferences.\n- [Speech Synthesis](https://capawesome.io/docs/sdks/capacitor/speech-synthesis/): Synthesize speech from text (text-to-speech) with voice selection, pitch, and rate control.\n- [Text Zoom](https://capawesome.io/docs/sdks/capacitor/text-zoom/): Read and control the WebView text zoom.\n\n## Newsletter\n\nStay 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/).\n\n## Changelog\n\nSee [CHANGELOG.md](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/screen-reader/CHANGELOG.md).\n\n## License\n\nSee [LICENSE](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/screen-reader/LICENSE).\n","readmeFilename":"README.md"}