Skip to content

Initializer multiselect checkboxes expose identical accessible names #2419

Description

@romanlutz

Describe the bug

In the frontend Initializers parameter dialog, every checkbox in a multiselect field has the accessible name tags, even though its visible option label is different. For example, the target initializer visibly offers default, scorer, all, and default_objective_target, but a screen reader announces each control as “tags, checkbox.” The technique initializer behaves the same way for core, extra, and all.

This makes the choices indistinguishable to screen-reader users and prevents them from reliably selecting the intended tags. It affects WCAG 2.1 success criteria 4.1.2 (Name, Role, Value) and 3.3.2 (Labels or Instructions).

The checkbox inputs each receive aria-labelledby pointing to the surrounding Fluent Field label (tags). That explicit accessible-name source overrides the individual associated <label> text.

Steps/Code to Reproduce

  1. Open the PyRIT frontend and navigate to Initializers.
  2. Select the target initializer and choose Add initializer.
  3. Inspect the multiselect checkboxes with a screen reader or the browser accessibility tree.
  4. Move among the visibly labeled default, scorer, all, and default_objective_target options.
  5. Repeat with the technique initializer and its core, extra, and all options.

A representative input is rendered as:

<input id="param-tags-default"
       aria-labelledby="field-…__label"
       aria-describedby="field-…__hint"
       type="checkbox">

The associated visible label is default, but the referenced field label is tags. Accessibility-tree queries find zero checkboxes named default, core, scorer, or all; every checkbox is exposed as:

checkbox "tags"

Expected Results

Each checkbox exposes its visible option label as its accessible name—for example, “default, checkbox” or “core, checkbox.” The multiselect group may separately retain tags as its group/field label and hint.

Actual Results

All seven inspected checkbox nodes across the target and technique dialogs expose the identical accessible name tags, so assistive-technology users cannot identify the individual choices.

Screenshots

N/A. The visible labels render correctly; the defect is in the accessibility tree.

Versions

  • OS: Windows
  • Browser: Chromium via Playwright
  • Python: 3.14.4
  • PyRIT: main at 1270f264d400de62d82036fa83b9033dccf8fa87
  • Python package versions: N/A; this is a frontend accessible-name defect.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions