dedlfix: Eingabefeld als Button

Beitrag lesen

Tach!

Ich habe ein Eingabefeld (readonly), beim Click darauf soll dessen Inhalt in die Zwischenablage kopiert werden.

Dass der Click auf ein Eingabefeld eine Aktion auslöst, dürfte befremdlich sein. Zum Auslösen von Aktionen sind Buttons da; mein erster Gedanke war also

Wer bist du und was hast du mit Gunnar gemacht? Sein erster Gedanke wäre, dem Auftraggeber diese Funktionalität auszureden. Zumindest predigt er das immer anderen, dass man das als Entwickler so machen müsse.

Das Ding muss also <input type="text"> bleiben. Macht es Sinn, dem Eingabefeld role="button" zu verpassen?

Dazu wäre die Frage zu klären, was das Attribut konkret bewirkt und was passiert, wenn es nicht mehr da ist.

Wenn das Ding so in die Rolle eines Buttons schlüpft, sollte es kein zugeordnetes label-Element haben, oder? (Aber natürlich eine aussagekräftige Beschriftung – per aria-label oder aria-labeledby.)

Wie in diesem Codepen?

<span id="accessible-label">copy to clipboard:</span>
<input value="some text" readonly="" role="button" aria-labeledby="accessible-label"/>

Auch hier wieder die Frage, was die Konsequenzen wären, und was an einem Span besser als an einem Label ist. Warum soll das Label nur für Nichtsehende als solches gekennzeichnet sein und sich nicht auch für den Rest des Publikums als solches verhalten, beispielsweise beim Draufklicken den "Button" auslösen?

dedlfix.