Requires that instructions do not rely only on shape, color, size, location, orientation or sound, so users who cannot perceive those can still follow them.
"Click the round green button on the right." This works only if you can see color, shape and position. A blind user, a user with a color vision difference and a user whose layout is different on a small screen cannot follow it.
This criterion requires that instructions for understanding and using content do not rely only on sensory characteristics of components, such as shape, color, size, visual location, orientation or sound. A sensory cue can still be used, as long as the instruction also names the item in some other way.
Blind and low-vision users cannot see color, shape or position. People with color vision differences cannot tell the colors. People who hear poorly or work in noise miss sound cues. People who use a screen magnifier or a different layout on a small screen or in a reader mode find that "on the right" or "below" is no longer true. Clear names help everyone, including people with cognitive differences.
The European Accessibility Act (Directive (EU) 2019/882) applies to in-scope products and services placed on the market after 28 June 2025. Recital 47 names four principles for websites and mobile applications: perceivable, operable, understandable and robust. Instructions that do not depend on one sense are part of "perceivable" and "understandable".
The technical counterpart is the standard EN 301 549, which incorporates WCAG 1.3.3 by reference and turns it into separate clauses for each kind of ICT.
| Clause | Type of ICT | What it requires |
|---|---|---|
| 9.1.3.3 | Web pages | Web content must satisfy WCAG success criterion 1.3.3. |
| 10.1.3.3 | Non-web documents (PDF, Office files) | The same criterion applies to instructions in documents. |
| 11.1.3.3 | Non-web software (native mobile apps) | Software that supports screen readers must satisfy the criterion. |
Clause numbers follow the "9. + WCAG number" pattern of EN 301 549. In V3.2.1 the software clause is divided into further subclauses for open and closed functionality. Check the exact numbers in the standard when you cite them.
Standard version: EN 301 549 V4.1.1 (September 2026) is based on WCAG 2.2 and is the first version prepared specifically for the EAA. It has not yet been cited in the Official Journal of the European Union, so for now it is best treated as a voluntary technical route to the EAA's requirements. Once cited, it will give a presumption of conformity. The text of criterion 1.3.3 is the same in WCAG 2.1 and 2.2.
A note on EAA scope: Article 2(4) of the Directive excludes certain content from the requirements, for example office file formats published before 28 June 2025 and archives that are not updated after that date. Content you publish or change after that date is not covered by these exclusions.
Directive (EU) 2019/882, EUR-Lex, opens in a new tab
Name the control. "Right" depends on the screen size, and it means nothing to a screen reader.
<p>To finish, click the button on the right.</p><p>To finish, select <strong>Save</strong>.</p>A color or shape can help, as long as the name is there too.
<p>Press the green button to continue.</p><p>Press the <strong>Continue</strong> button (green).</p>A sound cue needs a visual and a text equivalent.
<p>When you hear the beep, the upload is done.</p><p>When the upload is done, you hear a beep and the message
"Upload complete" appears.</p>
<div role="status">Upload complete</div>Name an icon by its function, and use the look only as a clue.
<p>Tap the gear to change the language.</p><p>Open <strong>Settings</strong> (gear icon) to change the language.</p>Do not rely on a red label alone. Say it in text.
<p>Fill in the fields in red.</p><p>Fields marked "(required)" must be filled in.</p>
<label for="name">Name (required)</label>
<input id="name" required>Name the region instead of describing where it is.
<p>Use the menu at the top left to find your orders.</p><p>Use the main navigation and choose <strong>Orders</strong>.</p>The same rule applies in native mobile apps. Name the action in the instruction, and make sure the button has the same name as a text label.
import SwiftUI
struct SaveHint: View {
var save: () -> Void
var body: some View {
VStack(alignment: .leading, spacing: 12) {
// The instruction names the control, not its place or color
Text("To finish, tap Save.")
Button(action: save) {
// The visible name matches the instruction
Label("Save", systemImage: "checkmark.circle.fill")
}
.buttonStyle(.borderedProminent)
}
}
}import androidx.compose.foundation.layout.Column
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.CheckCircle
import androidx.compose.material3.Button
import androidx.compose.material3.Icon
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
@Composable
fun SaveHint(save: () -> Unit) {
Column {
// The instruction names the control, not its place or color
Text("To finish, tap Save.")
Button(onClick = save) {
Icon(Icons.Filled.CheckCircle, contentDescription = null)
// The visible name matches the instruction
Text("Save")
}
}
}