Giter VIP home page Giter VIP logo

react-a11y-announcer's Introduction

react-a11y-announcer

react-a11y-announcer is a React a11y component created by Think Company that helps ensure announcements are accessible and properly announced by screen readers.

Building and running the demo

We included an example that shows you how the component will behave when added to a page. To run the demo:

  • Clone this repo locally
  • cd into the examples directory
  • run npm install
  • run npm run start

This will start a server. Open a browser window and navigate to the localhost url displayed in the console output (usually http://localhost:8080/.

Press the "Trigger new announcement" button to add the announcement to the page.

Using the Announcer

Install from npm

npm install react-a11y-announcer --save

Import Announcer

import Announcer from 'react-a11y-announcer';

Create a state to pass to the announcer's props

  this.state = {
    announcement: ''
  }

Add the announcer to your template

  <div className="App">
    <Announcer text={this.state.announcement} />
    <div className="App-header">
      <h2>Basic Announcer Example</h2>
      <button type="button" onClick={this.handleClick}>Trigger new announcement</button>
    </div>
  </div>

Update the state you passed to the text prop

  handleClick() {
    this.setState(prevState => ({
      announcement: 'Here\'s a new announcement!'
    }));
  }

Whenever a user with a screenreader clicks on that button, they should hear the announcement.

Browser Testing

React Announcer was tested and works as expected in the latest versions of:

  • iOS VoiceOver w/ Safari
  • macOS VoiceOver w/ Safari
  • Android TalkBack w/ Chrome
  • NVDA w/ Firefox
  • JAWS w/ IE11

How we Tested

Desktop screen reader:

  • With screen reader turned on, navigate to URL (localhost:3000)
  • Ensure virtual cursor position at top of page (In Windows NVDA/JAWS, press CTRL+Home)
  • Arrow down until hearing "Trigger new announcement" button
  • Press ENTER key
  • You should hear, "Here's a new announcement!" through the screen reader when the text appears visually

Repeat steps but change ENTER key step to SPACE key, both should work.

Mobile screen reader (VO, TalkBack):

  • With screen reader turned on, navigate to URL (localhost:3000)
  • Quickly swipe right until "Trigger new announcement" button is in focus and announced to screen reader
  • Double tap to activate button
  • You should hear, "Here's a new announcement!" through screen reader when the text appears visually

Contributing to React Announcer

To contribute to this project, please review and follow the contributing guidelines.

react-a11y-announcer's People

Contributors

greggreiner avatar jparisi avatar lukepettway avatar pezfish avatar thinkian avatar tikaro avatar zgavin1 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.