The state list to keep
For each custom control write down: its role, its name, its focusable state, its pressed state, and how each is announced. If you cannot write the list, use the native element.
Where ARIA is misused
Adding a role to change a native one, or adding a label to duplicate visible text, both create mismatches. Some technology announces the mismatch instead of the intent.