Back to Chromium

Alert Dialog Example

third_party/aria-practices/src/content/patterns/alertdialog/examples/alertdialog.html

153.0.8001.15.2 KB
Original Source

Alert Dialog Example

About This Example

The below example of a confirmation prompt demonstrates the Alert Dialog Pattern. It also includes an example of the Alert Pattern to make comparing the experiences provided by the two patterns easy.

To use this example:

  • Activate the "discard" button to trigger a confirmation dialog that has the alertdialog role.

    • Activating the "yes" button in the confirmation dialog removes the contents of both the "Notes" text area and local storage of the notes.
    • Activating the "no" button or pressing escape closes the dialog.
    • The "discard" button is disabled if the notes text area does not contain any text.
  • Activate the "save" button to trigger an alert when the contents of the "Notes" text area is saved to local storage.

    • A successful save triggers a short alert to notify the user that the notes have been saved.
    • The "save" button is disabled if the user's local storage value is the same as the "Notes" field.
  • Modify the "notes" text area as needed to enable and disable the discard and save functions.

Similar examples include:

Example

NotesThis is an example text box, which unsurprisingly contains text. The user is given the option to save this text - which triggers a basic alert - or to discard the text - which triggers an alert dialog that prompts the user for confirmation.

Save Discard

Confirmation

Are you sure you want to discard all of your notes?

NoYes

Accessibility Features

  • The accessible name of the alert dialog is set to its heading ("Confirmation").
  • The dialog's prompt ("Are you sure...?") is referenced via aria-describedby to ensure that the user is immediately aware of the prompt.
  • Focus is automatically set to the first focusable element inside the dialog, which is the "No" button. This is the least destructive action, so focusing "No" helps prevent users from accidentally confirming the destructive "Discard" action, which cannot be undone.
  • When the buttons are disabled, aria-disabled is used instead of the HTML disabled attribute so the buttons will remain in the page Tab sequence. This makes it easier for screen reader users to discover the buttons and discern how the interface works.

Keyboard Support

KeyFunction
Tab
  • Moves focus to next focusable element inside the dialog.
  • When focus is on the last focusable element in the dialog, moves focus to the first focusable element in the dialog.

| | Shift + Tab |

  • Moves focus to previous focusable element inside the dialog.
  • When focus is on the first focusable element in the dialog, moves focus to the last focusable element in the dialog.

| | Escape | Closes the dialog. | | Command + S | (Mac only) Save the contents of the notes textarea when focused. | | Control + S | (Windows only) Save the contents of the notes textarea when focused. |

Role, Property, State, and Tabindex Attributes

RoleAttributeElementUsage
alertdialogdivIdentifies the element that serves as the alert dialog container.
aria-labelledby="ID_REFERENCE"divGives the alert dialog an accessible name by referring to the element that provides the alert dialog title.
aria-describedby="ID_REFERENCE"divGives the alert dialog an accessible description by referring to the alert dialog content that describes the primary message or purpose of the alert dialog.
aria-modal="true"divTells assistive technologies that the windows underneath the current alert dialog are not available for interaction (inert).
alertdivIdentifies the element that serves as the alert notification.
aria-disabled="true"buttonTells assistive technology users the button cannot be activated.

Notes on aria-modal and aria-hidden

  • The aria-modal property was introduced in ARIA 1.1. As a relatively new property, screen reader users may experience varying degrees of support for it.
  • Applying the aria-modal property to the dialog element replaces the technique of using aria-hidden on the background for informing assistive technologies that content outside a dialog is inert.
  • In legacy dialog implementations where aria-hidden is used to make content outside a dialog inert for assistive technology users, it is important that:
    • aria-hidden is set to true on each element containing a portion of the inert layer.
    • The dialog element is not a descendant of any element that has aria-hidden set to true.

JavaScript and CSS Source Code

HTML Source Code

To copy the following HTML code, please open it in CodePen.