sounds-on-the-web

raphaelsalaja/skill · Agent Skill

Ses geri bildirimi arayüzünü UX kalitesi, erişilebilirlik ve pratik uygulama kalıpları açısından kontrol edin.

Kuruluma geç ↓

Genel bakış

YayıncıraphaelsalajaTopluluk
Deporaphaelsalaja/skill ↗
Skill klasörüsounds-on-the-web
Yıldız42
Fork5
Dosyalar1
LisansMIT
Son güncelleme17 Mart 2026
BağlantılarSkill kaynağı ↗ · Depo ↗

Mozgi kontrolü

Skill dosyalarında bulduklarımız. Ayrıntılar abonelikle.

Güvenlik
düşük risk · belirgin risk bulunamadı — tam rapor ayrıntıları gösterir
Uyumluluk
yalnızca talimatlar — çoğu ajanla çalışır
Benzer skiller
31 benzer skill bulundu
Abonelikte ayrıca

Kurulum

Skill, SKILL.md dosyası içeren bir klasördür. Ajanınızı seçin ve komutları proje kökünde bir terminalde çalıştırın (macOS, Linux veya Windows'ta Git Bash).

Promptu Claude, Codex veya başka bir asistana yapıştırın: skill'i inceleyip sizin için kuracaktır.

Install the “sounds-on-the-web” skill from mozgi.io (https://mozgi.io/skills/raphaelsalaja-sounds-on-the-web/) for me.

1. Download the archive: https://mozgi.io/skills/raphaelsalaja-sounds-on-the-web/download
   If it fails, take the skill folder from the source: https://github.com/raphaelsalaja/skill/tree/main/skills/sounds-on-the-web
2. Read SKILL.md and the other files. Check the skill is safe: no hidden commands, no sending data elsewhere, no scripts doing something other than described. If anything looks suspicious, stop and tell me.
3. Put the “sounds-on-the-web” folder into your agent's skills folder: .claude/skills/ for Claude Code, .agents/skills/ for Codex, .cursor/skills/ for Cursor, .gemini/skills/ for Gemini CLI. Inside the project if we are in one, otherwise in the home folder (~/.claude/skills/ etc.).
4. Make sure <skills folder>/sounds-on-the-web/SKILL.md exists.
5. Briefly tell me what this skill does and offer to try it on my task.

If you cannot do a step yourself, tell me what to click or type.

Kaynak dosyaları

1 dosya ZIP indir

Kurulumdan önce SKILL.md ve eşlik eden dosyaları inceleyin. Önizleme için dosyaya tıklayın.

SKILL.md içeriği

Yazarın orijinal metni · salt okunur

Sounds on the Web

Review UI code for audio feedback best practices and accessibility.

How It Works

1. Read the specified files (or prompt user for files/pattern)

2. Check against all rules below

3. Output findings in file:line format

Rule Categories

| Priority | Category | Prefix |

|----------|----------|--------|

| 1 | Accessibility | a11y- |

| 2 | Appropriateness | appropriate- |

| 3 | Implementation | impl- |

| 4 | Weight Matching | weight- |

Rules

Accessibility Rules

a11y-visual-equivalent

Every audio cue must have a visual equivalent; sound never replaces visual feedback.

Fail:

function SubmitButton({ onClick }) {
  const handleClick = () => {
    playSound("success");
    onClick(); // No visual confirmation
  };
}

Pass:

function SubmitButton({ onClick }) {
  const [status, setStatus] = useState("idle");
  
  const handleClick = () => {
    playSound("success");
    setStatus("success"); // Visual feedback too
    onClick();
  };
  
  return <button data-status={status}>Submit</button>;
}
a11y-toggle-setting

Provide explicit toggle to disable sounds in settings.

Fail:

// No way to disable sounds
function App() {
  return <SoundProvider>{children}</SoundProvider>;
}

Pass:

function App() {
  const { soundEnabled } = usePreferences();
  return (
    <SoundProvider enabled={soundEnabled}>
      {children}
    </SoundProvider>
  );
}
a11y-reduced-motion-check

Respect prefers-reduced-motion as proxy for sound sensitivity.

Fail:

function playSound(name: string) {
  audio.play(); // Plays regardless of preferences
}

Pass:

function playSound(name: string) {
  const prefersReducedMotion = window.matchMedia(
    "(prefers-reduced-motion: reduce)"
  ).matches;
  
  if (prefersReducedMotion) return;
  audio.play();
}
a11y-volume-control

Allow volume adjustment independent of system volume.

Fail:

function playSound() {
  audio.volume = 1; // Always full volume
  audio.play();
}

Pass:

function playSound() {
  const { volume } = usePreferences();
  audio.volume = volume; // User-controlled
  audio.play();
}

Appropriateness Rules

appropriate-no-high-frequency

Do not add sound to high-frequency interactions (typing, keyboard navigation).

Fail:

function Input({ onChange }) {
  const handleChange = (e) => {
    playSound("keystroke"); // Annoying on every keystroke
    onChange(e);
  };
}

Pass:

function Input({ onChange }) {
  // No sound on typing - visual feedback only
  return <input onChange={onChange} />;
}
appropriate-confirmations-only

Sound is appropriate for confirmations: payments, uploads, form submissions.

Pass:

async function handlePayment() {
  await processPayment();
  playSound("success"); // Appropriate - significant action
  showConfirmation();
}
appropriate-errors-warnings

Sound is appropriate for errors and warnings that can't be overlooked.

Pass:

function handleError(error: Error) {
  playSound("error"); // Appropriate - needs attention
  showErrorToast(error.message);
}
appropriate-no-decorative

Do not add sound to decorative moments with no informational value.

Fail:

function Card({ onHover }) {
  return (
    <div onMouseEnter={() => playSound("hover")}> {/* Decorative, no value */}
      {children}
    </div>
  );
}
appropriate-no-punishing

Sound should inform, not punish; avoid harsh sounds for user mistakes.

Fail:

function ValidationError() {
  playSound("loud-buzzer"); // Punishing
  return <span>Invalid input</span>;
}

Pass:

function ValidationError() {
  playSound("gentle-alert"); // Informative but not harsh
  return <span>Invalid input</span>;
}

Implementation Rules

impl-preload-audio

Preload audio files to avoid playback delay.

Fail:

function playSound(name: string) {
  const audio = new Audio(`/sounds/${name}.mp3`); // Loads on demand
  audio.play();
}

Pass:

const sounds = {
  success: new Audio("/sounds/success.mp3"),
  error: new Audio("/sounds/error.mp3"),
};

// Preload on app init
Object.values(sounds).forEach(audio => audio.load());

function playSound(name: keyof typeof sounds) {
  sounds[name].currentTime = 0;
  sounds[name].play();
}
impl-default-subtle

Default volume should be subtle, not loud.

Fail:

const DEFAULT_VOLUME = 1.0; // Too loud

Pass:

const DEFAULT_VOLUME = 0.3; // Subtle default
impl-reset-current-time

Reset audio currentTime before replay to allow rapid triggering.

Fail:

function playSound() {
  audio.play(); // Won't replay if already playing
}

Pass:

function playSound() {
  audio.currentTime = 0;
  audio.play();
}

Weight Matching Rules

weight-match-action

Sound weight should match action importance.

Fail:

// Loud fanfare for minor action
function handleToggle() {
  playSound("triumphant-fanfare");
  setEnabled(!enabled);
}

Pass:

// Subtle click for minor action
function handleToggle() {
  playSound("soft-click");
  setEnabled(!enabled);
}

// Richer sound for significant action
function handlePurchase() {
  playSound("success-chime");
  completePurchase();
}
weight-duration-matches-action

Sound duration should match action duration.

Fail:

// 2-second sound for instant action
function handleClick() {
  playSound("long-whoosh"); // 2000ms
  // Action completes immediately
}

Pass:

// Short sound for instant action
function handleClick() {
  playSound("click"); // 50ms
}

// Longer sound for process
function handleUpload() {
  playSound("upload-progress"); // Matches upload duration
}

Output Format

When reviewing files, output findings as:

file:line - [rule-id] description of issue

Example:
components/input/index.tsx:23 - [appropriate-no-high-frequency] Playing sound on every keystroke
lib/sounds.ts:45 - [a11y-reduced-motion-check] Not checking prefers-reduced-motion

Summary Table

After findings, output a summary:

| Rule | Count | Severity |

|------|-------|----------|

| a11y-visual-equivalent | 2 | HIGH |

| appropriate-no-high-frequency | 1 | HIGH |

| impl-preload-audio | 3 | MEDIUM |

Sound Appropriateness Matrix

| Interaction | Sound? | Reason |

|-------------|--------|--------|

| Payment success | Yes | Significant confirmation |

| Form submission | Yes | User needs assurance |

| Error state | Yes | Can't be overlooked |

| Notification | Yes | May not be looking at screen |

| Button click | Maybe | Only for significant buttons |

| Typing | No | Too frequent |

| Hover | No | Decorative only |

| Scroll | No | Too frequent |

| Navigation | No | Keyboard nav would be noisy |

References

Sık sorulan sorular

sounds-on-the-web skill'i ne yapar?

Ses geri bildirimi arayüzünü UX kalitesi, erişilebilirlik ve pratik uygulama kalıpları açısından kontrol edin.

sounds-on-the-web nasıl kurulur?

Bu sayfadaki “Kurulum” bölümünü açın ve ajanınızı seçin — Claude Code, Codex, Cursor veya Gemini CLI: skill klasörünü doğru yere kopyalayan hazır komutlar orada. Ya da “Asistanla” sekmesindeki promptu kopyalayın; asistan skill'i inceleyip kuracaktır.

sounds-on-the-web hangi yapay zekâlarla çalışır?

Skill'ler düz Markdown talimatlarıdır (Agent Skills formatı), bu yüzden sounds-on-the-web SKILL.md okuyan her ajanla çalışır: Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode ve diğerleri. Model talimatları yalnızca görev skill açıklamasına uyduğunda yükler.

sounds-on-the-web ücretsiz mi?

Skill, raphaelsalaja tarafından açık olarak yayımlandı (MIT lisansı). Skill'in kendisi ücretsizdir — yalnızca kullandığınız token'lar için yapay zekâ sağlayıcınıza ödeme yaparsınız.

Skill kurmak güvenli mi?

Skill, ajanınızın izleyeceği talimatlardır; kurmadan önce SKILL.md ve eşlik eden dosyaları okuyun. Skill klasöründeki betikler yalnızca ajanınız çalıştırırsa çalışır — ne yaptığını izleyin ve gereksiz izin vermeyin.

Skill, MCP sunucusu veya eklentiden nasıl farklıdır?

MCP sunucusu veya eklenti modele yeni araçlar verir — çalışıp sonuç döndüren kod. Skill ise bilgi ve süreç verir: göreve nasıl yaklaşılacağı, hangi adımların izleneceği ve iyi sonucun neye benzediği. Sunucu veya API anahtarı gerekmez.

Benzer skiller

Tüm skiller →
frontend-ui-engineering Frontend UI mühendisliği kılavuzu, bileşen mimarisi, uyarlanabilir tasarım, erişilebilirlik ve desteklenen uygulama şablonlarını kapsar. addyosmani111k wcag-audit-patterns WCAG 2.2 erişilebilirlik denetimlerini otomatik testleme, el ile doğrulama ve düzeltme önerileri ile gerçekleştirin. Erişilebilirlik denetimlerinde web sitelerini denetlemek, WCAG ihlallerini düzeltmek veya erişilebilir tasarım şablonlarını uygulamak için kullanın. wshobson41.8k wcag-audit-patterns Web siteleri için WCAG 2.2 erişilebilirlik denetimleri gerçekleştiren, otomatik testler, manuel doğrulama ve dijital arayüzlerin kapsayıcı ve uyumlu olmasını sağlamak için uygulanabilir iyileştirme rehberliği sunan bir araçtır. wshobson41.5k fixing-accessibility Erişilebilirlik sorunlarını düzeltmek ve ARIA etiketlerini, klavye navigasyonunu, odak yönetimini, renk kontrastını ve form hatalarını içeren bir denetim yapın. İnteraktif kontroller, formlar, diyaloglar eklerken veya WCAG uyumluluğunu kontrol ederken kullanın. ibelick10.2k better-accessibility Odak durumlarını, klavye desteğini, ARIA, formları, ekran okuyucu yazılımlarını, vuruş alanlarını ve hareket erişilebilirliğini kontrol edin ve geliştirin. jakubkrehel8.6k better-colors OKLCH renk alanı web projeleri için. Hex/rgb/hsl'yi oklch'ye dönüştürme, palet oluşturma, kontrastı kontrol etme, renk aralığının sınırlarını işleme ve Tailwind v4 ile temalar oluşturma. OKLCH, renk dönüştürme, palet oluşturma, kontrast oranı, renk aralığı, display p3, tasarım tokenları, ton kayması, kroma, karanlık mod renkleri ile çalışır. jakubkrehel8.6k