• 
      

    Add suppress checkboxes and better ARIA roles for dialogs.

    Review Request #14649 — Created Oct. 24, 2025 and submitted

    Information

    Ink
    master

    Reviewers

    It's common for some types of dialogs to have a suppression checkbox,
    such as "Do not ask again." To ensure there's a standard approach for
    this, dialogs can now have canSuppress=true set. This will place a
    checkbox in the secondary actions area, at the far left.

    The default text will be "Do not ask again," but this can be customized
    by setting suppressText=.

    It's up to the caller to determine how to suppress. The dialog doesn't
    control any of this. It does provide the result of the checkbox though
    as an isSuppressed property.

    This will be used for upcoming confirmation utility dialogs.

    Along with this, the ARIA role for modal dialogs has been updated to use
    alertdialog. This will announce the dialog to screen readers, and is
    the correct choice when popping up a modal dialog that requires
    attention, rather than a utility dialog that is simply on screen.

    Tested with and without suppression checkboxes, and with custom
    label text.

    Summary ID
    Add suppress checkboxes and better ARIA roles for dialogs.
    It's common for some types of dialogs to have a suppression checkbox, such as "Do not ask again." To ensure there's a standard approach for this, dialogs can now have `canSuppress=true` set. This will place a checkbox in the secondary actions area, at the far left. The default text will be "Do not ask again," but this can be customized by setting `suppressText=`. It's up to the caller to determine how to suppress. The dialog doesn't control any of this. It does provide the result of the checkbox though as an `isSuppressed` property. This will be used for upcoming confirmation utility dialogs. Along with this, the ARIA role for modal dialogs has been updated to use `alertdialog`. This will announce the dialog to screen readers, and is the correct choice when popping up a modal dialog that requires attention, rather than a utility dialog that is simply on screen.
    c936311c0af0c07840f4cbe3249c4fc80ec38d66

    Description From Last Updated

    I think I'd prefer if this was named something like isSuppressChecked. isSuppressed makes me think the dialog will handle the …

    daviddavid

    Seems like this should be id= or name=. This also needs the ink-c-dialog__suppress class to match the styling/docs elsewhere.

    daviddavid

    What does this mean?

    daviddavid

    This should be __suppress, to match the comment.

    daviddavid

    This should have defaults for canSuppress and suppressText

    daviddavid
    david
    1. 
        
    2. Show all issues

      I think I'd prefer if this was named something like isSuppressChecked. isSuppressed makes me think the dialog will handle the suppression.

    3. Show all issues

      Seems like this should be id= or name=.

      This also needs the ink-c-dialog__suppress class to match the styling/docs elsewhere.

      1. Looks like this fix ended up in /r/14689/. Moving it back here.

    4. Show all issues

      What does this mean?

      1. This is part of the schema documentation format I introduced in Ink. Meant to be a more formal way of showing how many of a component part can/must be in an element. It's used throughout the codebase.

    5. Show all issues

      This should be __suppress, to match the comment.

    6. Show all issues

      This should have defaults for canSuppress and suppressText

      1. Only if we want to supply a value. This is specifically using defaults.

    7. 
        
    chipx86
    david
    1. Ship It!
    2. 
        
    chipx86
    Review request changed
    Status:
    Completed
    Change Summary:
    Pushed to master (01d672e)