interface-sound
Interface sound
This skill reviews whether a sound should play and how the user controls it. It does not design the waveform. Synthesis belongs to synthesize-sound.
Every check is a pair. The broken line sits beside the line that replaces it.
Every sound needs a visual twin. Sound on typing, hover or scroll is a finding. A missing mute control is a finding. Taste about a melody is not.
When to use
Use this when adding, reviewing or removing UI sound. Use synthesize-sound when the sound is generated with the Web Audio API and the question is the buffer, the filter or the envelope.
1. List the cues
Read the files in scope. List each play, Audio or synth trigger and the interaction that fires it. If there is no audio, say so and stop.
2. Check whether it should play
Each cue has a visible state as well, such as a status attribute or a toast. Sound alone is a11y-visual-equivalent. The product exposes a setting that disables sound. That is a11y-toggle-setting. If prefers-reduced-motion: reduce matches, do not play. That is a11y-reduced-motion-check. Volume comes from a preference, not a hardcoded 1. That is a11y-volume-control. The published default is 0.3, which is impl-default-subtle.