01_FHEMWEB und VoiceOver

Begonnen von Elektrolurch, 30 Mai 2017, 14:41:28

Vorheriges Thema - Nächstes Thema

Elektrolurch

Hallo Rudi,

ich habe ja die Seiten gewechselt und nutze nun den Apple Screenreader VoiceOver in Safari. Leider liest der mancmal etwas zu viel vor, was nervig ist.
Konkret getht es um das Attribut "title=xyz", was von der fhemweb für Auswahlmenüs von readings mit in die Ausgabe gesetzt wird. Für Attribute erfolgt dies nicht.
Hier ein Beispiel aus dem html:
<code>
<select class="select_widget" informid="Test1_rg-Auto_Ansicht.Alarm" title="Alarm">
</code>
DA wird das Wort "Alarm durch VoiceOver gesprochen, obwohl es nicht auf dem Screen steht.
Könnte man das aus der fhemweb für die Auswahlmenüs entfernen? Wenn ich einen Bezeichner vor dem Menü haben will, so mache ich das ja mit dem Attribut valuePrefix in der readingsGroup.

Danke.

Elektrolurch
configDB und Windows befreite Zone!

Ellert

Wenn man nicht extra eine ReadingsGroup anlegen möchte, aber trotzdem sehen möchte welches Reading mit einem Widget bedient wird, ist die Angabe des title-Attributes sehr hilfreich. Bei mouseover wird dann des Readingname angezeigt.

Siehe https://forum.fhem.de/index.php/topic,70007.0.html

rudolfkoenig

@Elektrolurch: ich helfe Dir (und allen anderen mit Vorleser) gerne, ich will aber aber die anderen nicht vergraulen, und will genau verstehen, was schlecht ist.

Dass Title vorgelesen wird, finde ich (als jemand ohne Vorleser-Erfahrung) erstmal nicht falsch, kannst du mir sagen, warum es dich stoert? Und ich bin wg. "Auswahlmenu fuer Readings" verwirrt: ich haette schwoeren koennen, dass sowas nicht gibt. Kannst du mir sagen, wie ich das nachstellen kann?

Elektrolurch

Zitat:
Dass Title vorgelesen wird, finde ich (als jemand ohne Vorleser-Erfahrung) erstmal nicht falsch, kannst du mir sagen, warum es dich stoert? ...

Beispiel: Habe mir meine fhem-Oberfläche so ziemlich auf die Gegebenheiten des iPhone wegen der Sprachausgabe mit VoiceOver umgestellt. Zum Beispiel für die Einstellung der Thermostate wird das Menü des readings "desired-temp" verwendet und nur bei Safari auf Mac oder iPhone wird das an sonsten auf der grafischen Oberfläche unsichtbare Attribut "title" vorgelesen. Da das Auswahlmenü einer der wenigen Bedienelemente ist, dass über einen ScreenReader auch bedienbar ist (die ganzen netten Widgets mit JavaSkript bleiben leider "stumm") verwende ich Auswahlmenüs recht häufig. An vielen Stellen ist aber nun (die teils auch nun englische)Bezeichnung des readings nicht nur redundant, sondern es verzögert auch die Ausgabe und macht die Bedienung einfach langsamer.
Zumal der "title" nur bei Auswahlmenüs von readings und nicht bei Attributen sich im html befindet, also auch nicht ganz konsistent ist. Bei Icons mit dem Attribut "title" ist es etwas anders: Da erschließt sich mir ja das Bild des Icons nicht und ein sprechendes Icon ist dann sogar hilfreich. Leider funktioniert das aber nicht bei svg-Icons, so dass ich mir eine Funktion "Icon with Label" gebastelt habe, so dass ich die Icons mit einem "sprechenden" Text versehen kann.
Das html - Attribut "title" wird auf Firefox oder IE nicht vorgelesen und dies geschieht erst seit dem letzten Update von Safari.

Vielleicht noch zum besseren Verständnis: Bei der Bedienung über VoiceOver streicht man mit dem Finger von links nach rechts oder vice versa über den Screen und geht so sequentiell durch das Bild. Und wenn da viele redundante Infos vorgelesen werden, wie z.B. der Titel von Auswahlmenüs, verlangsamt das die Bedienung.  Wie schon oben gesagt, wenn ich einen Bezeichner vor dem Auswahlmenü doch mal als sinnvoll erachte, dann definiere ich ihn über das Attribut valuePrefix in einer readingsGroup.

Zitat:
Und ich bin wg. "Auswahlmenu fuer Readings" verwirrt: ich haette schwoeren koennen, dass sowas nicht gibt. Kannst du mir sagen, wie ich das nachstellen kann?


Na ja, z.B. FHT -> desired-temp hat schon intern eine setList (desired-temp:12.0,12.5,...) und in einer readingsGroup setzt man einfach:

attr Klima_rg commands {'desired-temp' => 'desired-temp:',...}

In dem Fall wird dann automatisch das vom Modul-Autor und über fhem bereit gestellte Eingabeverfahren, also das Auswahlmenü (oder Ausklappliste) in die readingsGroup eingebaut.

Allerdings müsste auch das gleiche bei "stateFormat" passieren.
Nachstellen kann man es von der Auswirkung ja nur, wenn man Safari auf einem Mac oder iPhone mit eingeschaltetem VoiceOver verwendet.
Ich habe mal die 01-fhemweb nach "select_widget" durchsucht, aber nichts gefunden. Vielleicht ist die Datei zu groß, so dass der ScreenReader nicht den Fokus auf die gefundene Stelle setzt...?
Per grep finde ich es leider auch nicht, wo das eingebaut wird, da habe ich noch eine Wissenslücke... :-)

Gruß

Elektrolurch
configDB und Windows befreite Zone!

justme1968

hast du mal homekit probiert?

vielleicht ist das als oberfläche  und mit siri bedienung für manches besser geeignet als einen reine web seite wie fhem sie liefert.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig

Ich meine das Problem verstanden zu haben.
Es geht um die set/get/attr Widgets in der Geraete-DetailAnsicht von FHEMWEB.
Die Aenderung kam mit dem von @Ellert verlinkten Beitrag, das Attribut wird in fhemweb.js hinzugefuegt.

Ab sofort kann dieses title mit "attr WEB addHtmlTitle 0" deaktiviert werden, per Voreinstellung bleibt es aktiviert.

Elektrolurch

Hallo Rudi,

danke für den patch. Funktioniert und jetzt ist die Bedienung nicht mehr ganz so nervig.
Ist mir gestern noch beim Testen aufgefallen:
Der Safari auf dem MacOSX liest das Attribut title NACH dem Wert des Auswahlmenüs, der Safari auf IOS VOR dem Wert.
Das nennt man konsistente Poduktentwicklung. (bei "Kleinweich" mit "Fenster" hätte mich das ja nicht gewundert).

Jetzt muss ich nur noch Herausfinden, warum manche Tabellen in fhem beim Navigieren mit dem Screenreader bei jeder Zelle nach dem Inhalt "Zeile x, Spalte y" ansagen, und andere Tabellen in fhem sich nicht so verhalten.
Und das ist zwischen FF, IE und Safari auch noch unterschiedlich!
Da die Ansage aber jeweils nach dem Zelleninhalt kommt, ist es bei der Bedienung nicht ganz so lästig, da durch das Navigieren zur nächsten Zelle die Sprachausgabe abgebrochen wird.

Elektrolurch
configDB und Windows befreite Zone!