Vielen Dank für deinen Besuch. Diese Seite ist nur in Englisch verfügbar.

Make Your Skill Accessible to All

A skill can reach many customers. As you design, it’s important to keep in mind customers that might have disabilities, whether temporary or permanent, so that they can get the most from the conversation and interaction.

There are temporary, permanent, and situational disabilities that every customer faces in life. The disabilities range from having both hands busy driving a car to having low or no vision. When you design an accessible skill, your goal is to create a skill that anyone can use at any time.

Follow the accessibility principles and best practices outlined in this guide to help you design a skill for everyone.

Best practices for accessible skills

Screen readers

Customers with visual impairment might not be able to experience the visual aspects of your skill fully. They need to rely on the screen-reader voice description of the image. Unlike Alexa’s usual voice experience, you should create screen-reader descriptions that are verbose to describe every aspect of the image. To that end, customers should be able to use voice commands alone to discover what you display on screen. A visually impaired customer might use a screen reader, such as the Voice View reader.To help these customers efficiently navigate your skill, you need to provide an appropriate hierarchy of information from most to least important.

Color considerations

The baseline Color system has been designed to be level AA accessible contrast ratio of 4.5:1 for all text and colors. The default text color is #FAFAFA on a #232F3E background. This combination has an excellent contrast ratio of 15.5:1. You can measure other color combinations with an online tool to meet the minimum ratio of 4.5:1, or 3:1 for larger text, such as Body or Display 1.

Visual elements should use more than just color to convey meaning, since some customers might not be able to see color and colors have different cultural meanings across the world. For example, a red label on a form field might not be perceptible as a required signifier to a colorblind customer if it is the sole indicator. However, you could still use the color if you pair it with a redundant visual indicator such as bold type. For more information, see Use of Color on the W3C school site.

Text contrast

Text contrast is measured using Web Content Accessibility Guidelines (WCAG) 2.1 standards. The preset APL layouts preset the minimum contrast ratios for foreground text and background colors. However, you might still need to check the contrast ratio yourself to ensure legibility for all text sizes, weights, and background images – especially at small sizes such as Caption. Text contrast over an image, or background image, are somewhat reduced. Apply a minimum overlay color of 60% black to avoid contrast issues. You can do this by setting the scrim parameter to be darker.

Learn more about Typography and Color.

Limit flashing

As a rule, screens or screen elements should not flicker, flash, or blink. However, if you have good reason to draw customers’ attention in this manner, ensure the flash frequency is greater than two flashes per second. Doing so should help prevent triggering photosensitive seizures in customers. A flashing-text insertion caret is an exception to this rule - it is too small to trigger seizures.

Timed response

Some customers need additional time to complete tasks. If a customer has only a limited amount of time to complete a task, they should be able to bypass or take an alternative route to accomplish the same task.

Pauses and transitions

If your skill offers a customer more than one option in a prompt or changes subjects in the middle of a message, clearly indicate this to the customer with natural breaths and pauses, or even transitional phrases, such as “Next,” “Now let's talk about …,” and “the first one is … the second one is …”.

Error handling and re-prompts

Handle utterance errors gracefully and consider writing re-prompts to add clarification as to the type of information the skill is trying to collect.

If a customer asks a smart home skill to set their fan's speed to 20:

Do

Alexa; “I can set your fan speed between one and ten. Which speed did you want?”

Don't

Alexa: “That's not a valid entry. Try again.”

Learn more about handling errors.

Data entry

IIt can be difficult for customers, even those without speech impediments, to tell Alexa long strings of numbers or detailed information. Telling Alexa an address, phone number, or zip code can be tedious. Offer alternative methods for inputting this kind of information, such as using the Alexa App, in case they can’t relay the information by voice alone.

After two consecutive utterance errors on the same prompt:

Do

Alexa: “I didn't quite get that. You can always share your location with the Concert Finder skill in your Alexa app settings. What's your zip code?”

Don't

Alexa: “Sorry, it seems we're having trouble getting your location. Could you repeat that again?”

Reduce cognitive load

When Alexa delivers a message and a prompt to open the mic for a response, customers have only eight seconds to process what Alexa just said, formulate a response, and answer out loud. Customers with learning or speech disabilities might find overly verbose skills particularly difficult to use. Delivering less information with fewer options can help customers develop a clear mental map of the skill and understand what their options are to engage and stay engaged. Your prompts should be short enough to be read aloud by a person in one to two breaths.

Do

Alexa: “I found twelve concerts in Seattle this week. The first is The Presidents of the United States of America at the Paramount Theater on Saturday. Do you want to hear more about it?”

Don't

Alexa: “I found three concerts like that. The Presidents of the United States of America at the Paramount Theater on Saturday at nine pm., Shabazz Palaces at the Showbox at the Market Sunday at ten pm, and The Head and the Heart at the Funhouse Concert Hall and Bar June eighteenth at midnight. You can learn more about one of these, buy tickets to one of these, or hear about nine more concerts I found. Which would you like?”

Support screen readouts

When customers ask Alexa to read what’s on screen, you need to provide that service. For example, customers can say, “Alexa, tell me what’s on the screen.” This utterance is used by customers with visual impairments, as well as distracted customers who might be too far away or too busy to look at the screen. For example, if a customer has a cooking skill open but they can’t see the screen, they might ask Alexa to read off the ingredients while they search for those items in the refrigerator or pantry.

In the following scenario, the customer has had a recipe detail page open for some time while gathering ingredients. The customer walks away to wash their hands and handle some raw ingredients:

Do

User: “Alexa, tell me what's on screen.”

Alexa: “Here's information about easy egg drop soup. It's four out of five stars with one hundred and fifteen reviews. Prep time is twenty minutes and it serves six. You can access directions, play a video or get the ingredients.”

User: “Alexa, read me the ingredients.”

Alexa: “To make six servings of egg drop soup, you'll need...”

Don't

User: “Alexa, tell me what's on screen.”

Alexa: “There is a photo and information about easy egg drop soup.”

No detailed voice response given.

Support the "Repeat" command

Customers should be able to ask Alexa to repeat herself at any time, whether they’re using the skill in a noisy area or they’re just having issues understanding Alexa’s response. Youneed to determine what part of the message Alexa should repeat back to the customer, and if they need full response or just the prompt. To do this, you can take advantage of the built-in AMAZON.RepeatIntent and provide a handler for it. At a minimum, you need to save the last response in your session attributes and then implement a handler that outputs the previous response.

For example, if the customer is using a trivia skill, they need to hear both the question and multiple answers repeated to them to understand the full context.

Do

Alexa: “Today’s trivia question is: Which of these artists holds the records for most Grammys won in a lifetime: a. Michael Jackson; b. Alison Krauss; or c. Georg Solti?”

User: “Uh, could you repeat that?”

Alexa: “Today’s trivia question is: Which of these artists holds the records for most Grammys won in a lifetime: a. Michael Jackson; b. Alison Krauss; or c. Georg Solti?”

Don't

Alexa: “Today’s trivia question is: Which of these artists holds the records for most Grammys won in a lifetime: a. Michael Jackson; b. Alison Krauss; or c. Georg Solti?”

User: “Uh, could you repeat that?”

Alexa: “Was it a. Michael Jackson; b. Alison Krauss; or c. Georg Solti?”

In this next example, it would be incredibly tedious for you to provide the customer with the full answer. Instead, you just provide the prompt so the customer hears the most pertinent information repeated back to them.

Do

Alexa: “Thanks for signing up for ASK Music, Jen. Now you have access to more trivia games, fun music facts, and customer rewards you can use toward tickets. You can play today’s trivia, ask a music question, or get tickets to a show. Which would you like?”

User: “Uh... What? Repeat please?”

Alexa: “You can play today’s trivia, ask a music question, or get tickets to a show. Which would you like?”

Don't

Alexa: “Thanks for signing up for ASK Music, Jen. Now you have access to more trivia games, fun music facts, and customer rewards you can use toward tickets. You can play today’s trivia, ask a music question, or get tickets to a show. Which would you like?”

User: “Uh... What? Repeat please?”

Alexa: “Thanks for signing up for ASK Music, Jen. Now you have access to more trivia games, fun music facts, and customer rewards you can use toward tickets. You can play today’s trivia, ask a music question, or get tickets to a show. Which would you like?”


To do this, you can take advantage of the built-in AMAZON.RepeatIntent and provide a handler for it. At a minimum, you will need to save the last response in your session attributes and then implement a handler that outputs the previous response.

Back to top