Formularvalidierung mit Web Audio

Avatar of Ruth John
Ruth John am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Ich denke schon seit einiger Zeit über Ton auf Websites nach.

Wenn wir über die Verwendung von Ton auf Websites sprechen, runzeln die meisten von uns die Stirn und denken an die alten Zeiten, als beim Laden der Website laute Hintergrundmusik abgespielt wurde.

Heute ist und muss dies kein Thema sein. Wir können mit Klängen clever umgehen. Wir haben jetzt die Web Audio API und sie gibt uns eine große Kontrolle darüber, wie wir Klänge für die Verwendung in unseren Webanwendungen gestalten.

In diesem Artikel werden wir ein einziges, einfaches Beispiel ausprobieren: ein Formular.

Was wäre, wenn Ihnen beim Ausfüllen eines Formulars neben visueller auch akustische Rückmeldung gegeben würde. Ich sehe Ihre grimassierenden Gesichter! Aber geben Sie mir einen Moment.

Wir haben bereits viel akustische Rückmeldung in den digitalen Produkten, die wir verwenden. Die Tastatur eines Telefons erzeugt ein Tippgeräusch. Selbst wenn Sie die Töne für "Nachricht empfangen" ausgeschaltet haben, hören Sie höchstwahrscheinlich, wie Ihr Telefon vibriert. Mein MacBook gibt beim Neustart einen Ton von sich, ebenso wie Spielekonsolen. Akustische Rückmeldung ist überall und ziemlich gut integriert, bis zu dem Punkt, an dem wir nicht wirklich darüber nachdenken. Wann haben Sie zum letzten Mal beim Mikrowellenherd gegrinst, als er gepiept hat? Ich wette, Sie sind froh, nicht zusehen zu müssen, um zu wissen, wann er fertig war.

Während ich diesen Artikel schreibe, hat mein Computer gerade gepiept. Einer meiner offenen Tabs hat mir eine nützliche Benachrichtigung gesendet. Mein Punkt ist, dass Ton hilfreich sein kann. Wir müssen vielleicht nicht alle mit unseren Ohren wissen, ob wir ein Formular falsch ausgefüllt haben, aber es gibt vielleicht viele Leute da draußen, die es nützlich finden.

Also werde ich es versuchen!

Warum jetzt? Wir haben die Möglichkeiten jetzt zur Hand. Ich habe bereits die Web Audio API erwähnt, mit der wir Töne erstellen/laden und abspielen können. Dazu kommen die HTML-Formularvalidierungsfähigkeiten und wir sollten bereit sein.

Lassen Sie uns mit einem kleinen Formular beginnen.

Hier ist ein einfaches Anmeldeformular.

Sehen Sie den Pen Simple Form von Chris Coyier (@chriscoyier) auf CodePen.

Wir können ein Formular wie dieses mit wirklich robuster Validierung verdrahten.

Mit allem, was wir aus Chris Ferdinandis Anleitung zur Formularvalidierung gelernt haben, hier ist eine Version dieses Formulars mit Validierung

Sehen Sie den Pen Simple Form with Validation von Chris Coyier (@chriscoyier) auf CodePen.

Vorbereitung der Sounds

Wir wollen keine unangenehmen, aufdringlichen Töne, aber wir wollen, dass diese Töne Erfolg und Misserfolg repräsentieren. Eine einfache Möglichkeit hierfür wäre, höhere, hellere Töne zu haben, die nach oben gehen für Erfolg und tiefere, verzerrtere Töne, die nach unten gehen für Misserfolg. Dies gibt uns immer noch sehr breite Optionen zur Auswahl, ist aber ein allgemeines Sounddesign-Muster.

Mit der Web Audio API können wir Töne direkt im Browser erstellen. Hier sind Beispiele für kleine Funktionen, die positive und negative Töne abspielen

Sehen Sie den Pen Created Sounds von Chris Coyier (@chriscoyier) auf CodePen.

Das sind Beispiele für die Erstellung von Sounds mit dem Oszillator, was ziemlich cool ist, weil es keine Webanfragen erfordert. Sie programmieren buchstäblich die Töne. Es ist ein bisschen wie das SVG der Klangwelt. Es kann Spaß machen, aber es kann auch viel Arbeit und viel Code bedeuten.

Während ich mit dieser Idee herumspielte, veröffentlichte Facebook sein SoundKit, welches

Um Designern zu helfen, zu erforschen, wie Klang ihre Designs beeinflussen kann, hat Facebook Design eine Sammlung von Interaktionsgeräuschen für Prototypen erstellt.

Hier ist ein Beispiel für die Auswahl einiger Töne daraus und deren Wiedergabe

Sehen Sie den Pen Playing Sound Files von Chris Coyier (@chriscoyier) auf CodePen.

Eine andere Möglichkeit wäre, die Sounddatei abzurufen und den audioBufferSourceNode zu verwenden. Da wir kleine Dateien verwenden, gibt es hier nicht viel Overhead, aber die obige Demo ruft die Datei jedes Mal über das Netzwerk ab, wenn sie abgespielt wird. Wenn wir den Ton in einem Puffer speichern würden, müssten wir das nicht tun.

Herausfinden, wann die Sounds abgespielt werden sollen

Dieses Experiment, dem Formular Sounds hinzuzufügen, wirft viele Fragen bezüglich der UX der Verwendung von Sound in einer Benutzeroberfläche auf.

Bisher haben wir zwei Töne: einen positiven/Erfolgs-Ton und einen negativen/Fehler-Ton. Es macht Sinn, dass wir diese Töne verwenden würden, um den Benutzer über diese Szenarien zu informieren. Aber wann genau?

Hier einige Gedanken zum Nachdenken:

  • Spielen wir den Ton für jeden ab, oder ist es ein Opt-in-Szenario? Opt-out? Gibt es APIs oder Media Queries, die wir verwenden können, um die Standardeinstellung zu informieren?
  • Spielen wir Erfolgs- und Fehlertöne beim Absenden des Formulars oder auf der Ebene des einzelnen Eingabefeldes? Oder vielleicht sogar Gruppen/Feldsets/Seiten?
  • Wenn wir Töne für jedes Eingabefeld abspielen, wann tun wir das? Beim blur?
  • Spielen wir Töne bei jedem Blur ab? Gibt es eine andere Logik für Erfolgs- und Fehlertöne, wie z. B. nur ein Fehlerton, bis er behoben ist?

Es gibt keine wirklich etablierten Best Practices für diese Dinge. Das Beste, was wir tun können, ist, geschmackvolle Entscheidungen zu treffen und Benutzerforschung zu betreiben. Das heißt, die Beispiele in diesem Beitrag sind Ideen, keine in Stein gemeißelten Wahrheiten.

Demo

Hier ist einer!

Demo ansehen

Und hier ist ein Video mit Ton, das zeigt, wie es funktioniert

Stimme

Greg Genovese hat einen Artikel, der sich ganz um Formularvalidierung und Screenreader dreht. „Reader“ ist hier relevant, da es hierbei nur um Audio geht! Es gibt viel zu tun mit Aria-Rollen und Fokusverschiebung usw., damit Fehler klar sind und klar ist, wie sie zu beheben sind.

Die Web Audio API könnte hier auch eine Rolle spielen, oder wahrscheinlicher die Web Speech API. Akustische Rückmeldung für die Formularvalidierung muss nicht auf Screenreader-Software beschränkt sein. Es wäre sicherlich interessant, das Vorlesen von tatsächlichen Fehlermeldungen zu experimentieren, vielleicht in Verbindung mit anderen Tönen, wie wir hier experimentiert haben.

Gedanken

All das nenne ich Sound Design im Web Design. Es geht nicht nur darum, Musik und Töne abzuspielen, sondern darum, dem Klangbild Gedanken zu widmen und Planung und Design zu betreiben, wie Sie es bei jedem anderen Aspekt dessen tun würden, was Sie entwerfen und bauen.

Es gibt noch viel mehr zu diesem Thema zu sagen und absolut mehr Wege, wie Sie Klänge in Ihren Designs verwenden können. Lassen Sie uns darüber sprechen!