What problem does it solve? ESLint rules jest-dom/prefer-required and jest-dom/prefer-to-have-attribute push ARIA attribute assertions back and forth when tests assert on Testing Library query results, and toBeRequired() cannot distinguish native required from aria-required. This Skill resolves the lint loop by moving ARIA emission logic into a pure helper module and asserting on the returned object instead of the DOM node. ## Core Features & Use Cases - Pure helper extraction: Moves aria-required and aria-describedby computation into a standalone module beside the component, with the component spreading the result. - Lint-loop resolution: Assertions on plain objects fall outside jest-dom rule scope, so neither prefer-required nor prefer-to-have-attribute rewrites them. - Mutation testing support: Pins ARIA-computing branches that render identically, killing mutation survivors reported by the mutation test target. - Use Case: A React input component joins helper-text and caller-supplied aria-describedby ids; instead of asserting toHaveAttribute on the rendered element, the test asserts describedBy('helper-1', 'caller-2') returns { 'aria-describedby': 'helper-1 caller-2' }. ## Quick Start Refactor my component test that asserts aria-required with toHaveAttribute so the ARIA logic lives in a helper module and the test asserts on its returned object.