Skip to content

Can a focusable element match :active if it has no activation behavior? #13116

Open

Description

@cdoublev

What is the issue with the HTML Standard?

The spec requires using this first relevant entry to determine if an element is being activated:

[...] an HTML user agent must use the first relevant entry in the following list

  • [...]
  • If the element is focusable

The element is being activated if it is in a formal activation state.

If I am not mistaken, <div tabindex="1">focusable</div> cannot be in a formal activation state because it has no activation behavior. Therefore, the user agent should not check the remaining entry of the algorithm:

  • If the element is being actively pointed at

The element is being activated.

However, it matches :active in current version of Chrome stable and Firefox ESR, when it is actively pointed at.

Activity

  1. krasavamarat commented on Oct 23, 2026

    @krasavamarat

    The issue is that the HTML Standard's algorithm for determining whether an element matches :active may be inconsistent with the observed browser behavior.

    The standard says the user agent must use the first relevant entry in the list. For a focusable element such as

    , the applicable entry says the element is being activated only if it is in a formal activation state. Since a div has no activation behavior, it cannot enter that state under the standard's definition. The algorithm should therefore not reach the subsequent entry for elements being actively pointed at.

    However, Chrome Stable and Firefox ESR reportedly match :active on such a div while the pointer is held down.

    This suggests a potential ambiguity or specification–implementation mismatch: should the focusable-element entry prevent the algorithm from falling through to the actively-pointed-at entry, or should the latter still apply?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions