Archived worked example AP-M1-04 Violation observed

Modal focus return

Wishlist closes, focus does not return

The same heart button can still receive focus. Escape closes the modal, but focus settles on BODY.

What the checker requires

G(bound_modal_escape_closes(d,i) -> F_[0,500ms] focus_is_exact_invoker(i))
always(() =>
  m1ExactInvokerReturnContractHolds(
    m1FocusReturnObservation.current));

Open → interact → lose position

No added focus box; the legacy trace does not carry focus geometry.

Space
Escape + 500 ms
s0 · Heart button focused
Airbnb stays page with the Saltwater Cottage heart button carrying the browser's native focus outline.

The exact wishlist invoker has keyboard focus before activation.

Return to the same heart

Focus goes back to the exact eligible button that opened the modal.

Focus settles on BODY

The modal is closed and no replacement modal exists, but the exact invoker is not focused.

Does this interpretation make sense?

Stored only in this browser.