Small or Moving Close Button

The Small or Moving Close Button is a visual and interaction-based dark pattern formally classified under the “Hard To Close” taxonomy. It artificially restricts a user's ability to dismiss an overlay, modal, or advertisement by actively weaponizing Fitts's Law against the human motor system. This architectural hostility is achieved by rendering the dismissal vector (such as an “X” icon) perceptually or physically inaccessible due to microscopic scaling, camouflaging it via extremely low contrast, or implementing kinetic evasion where the button dynamically mutates its spatial coordinates to avoid the user's cursor.

1

Structural Event-Listener Commandeering on Dismissal Vectors

Streamly — Video player

Special offer for you

20% off your next order. Try to close this — the X runs away from your cursor, and if you catch it, something else happens…

Condition 1: Structural Event-Listener Commandeering on Dismissal Vectors
Given
To establish a structural baseline for Small or Moving Close Button, the algorithm traces the registered event handlers on the identified close-button node . The feature triggers if the onclick or onpointerdown handler for the close element is either (a) intercepted by a parent-level capture-phase listener that redirects the event, or (b) dynamically rebound at a rate below , indicating kinetic evasion where the handler target mutates faster than human reaction time:
2

Microscopic Hitbox

Streamly — Sign-up offer

Newsletter

Sign up to get 10% off your first order. There is a close target somewhere in the corner… if you can find it. It’s 8 × 8 px, faded into the card.

Try clicking the tiny X in the top-right corner.

Condition 2: Microscopic Hitbox
Given
To evaluate the physical accessibility of the dismissal vector, we define as the DOM node or vision-language model-detected bounding box representing the close action. We calculate its interactive surface area in CSS pixels as , and contrast this with , the total rendered area of the parent modal or advertisement container. The feature triggers if the absolute area of the close button falls below established Web Content Accessibility Guidelines (WCAG) minimums for touch targets (codified as pixels), or if its relative size compared to the parent container is geometrically insignificant, falling below a fractional threshold (e.g., ):
3

Semantic Obfuscation of Dismissal Labels

Streamly — Newsletter prompt

You’ve been selected!

Claim your free gift card — a $25 reward is waiting for you.

Condition 3: Semantic Obfuscation of Dismissal Labels
Given
To establish a semantic baseline for Small or Moving Close Button, the algorithm examines the aria-label, title attribute, and visible text of dismissal elements. The feature triggers if the close button's accessible name is absent, semantically vacuous (e.g., a non-descriptive icon with no label), or misleading—such as labeling a close action with “Continue” or “Learn More”—indicating that even if the element is visually detected, its semantic identity is deliberately obscured: