Freigeben über


JAWS-Sprachausgabe für Unified Service Desk konfigurieren

JAWS (Job Access With Speech) ist ein Computer-Bildschirmleseprogramm für Microsoft Windows, das blinden und sehbehinderten Benutzern das Lesen des Bildschirms entweder über eine Text-to-Speech-Ausgabe oder über eine aktualisierbare Braillezeile erlaubt.

Unified Service Desk unterstützt JAWS Version 18 für Windows Screen Reader für die Sprachausgabe im Unified Service Desk Client. Alle Steuerelemente in Unified Service Desk und benutzerdefinierten Steuerelemente, die Teil des Web-Client Pakets sind, sind JAWS kompatibel. Für die benutzerdefinierten Steuerelemente, die Sie im Rahmen des Lösungspakets überarbeiten, müssen Sie die erforderlichen Eigenschaften definieren, damit die Steuerelemente JAWS kompatibel werden.

JAWS-Support für fokussierbare Steuerelemente (interaktive Steuerelemente)

Sie können die JAWS Screenreader-Unterstützung für Steuerelemente konfigurieren, die fokussierbar sind (Interaktive Steuerelemente), z.B. Schaltflächen, Listenfelder, Menüs, Optionsfelder und Kontrollkästchen.

Damit JAWS Screen Reader ein fokussierbares Steuerelement lesen kann, müssen Sie einen Wert für die AutomationProperties.Name Attached Property angeben.

Zum Beispiel:

<Button Width="30" Height="30" Name="Save" ToolTip="Click to save the doc." AutomationProperties.Name="Save" Focusable="True" IsTabStop="True">

JAWS Support für Quickinfo

Standardmäßig unterstützt JAWS Screenreader das Lesen von Toolbar-Schaltflächen nicht. Sie können jedoch angepasste JAWS-Skripte erstellen, damit JAWS Screenreader den Tooltip-Text lesen können.

Im Folgenden finden Sie ein Beispielskript zum Überprüfen des Schaltflächennamens und das Feld Quickinfor (Hilfetext). Wenn Sie in Unified Service Desk den Tooltip-Text nicht explizit konfigurieren, wendet das System den Namen der Schaltfläche auf den Tooltip-Text an. In diesem Fall liest JAWS sowohl den Namen der Schaltfläche als auch den Text der QuickInfo. Um zu vermeiden, dass der Schaltflächenname und QuickInfotext gelesen wird, können Sie ein benutzerdefiniertes Skript erstellen, um zu prüfen, ob der Schaltflächenname und QuickInfotext-Name identisch sind.

Wenn im Beispielskript der Hilfetext nicht mit dem Namen der Schaltfläche übereinstimmt, liest JAWS Screen Reader den Tooltip (Hilfetext).

include "hjConst.jsh"
void function SayObjectTypeAndText(int nLevel)
SayObjectTypeAndText(nLevel)
if nLevel == 0
   var string sHelp = GetObjectHelp()
   var string objName = GetObjectName()
   if sHelp && sHelp != objName // If help text is not equal to the object name, the JAWS screen reads the help text
      Say(sHelp,ot_help)
   endIf
endIf
EndFunction

Im Beispielsbild ist der Schaltflächenname und der QuickInfotext gleich: ERINNERUNG. In diesem Szenario prüft das Skript, ob der Name der Schaltfläche und der Text der QuickInfo unterschiedlich sind, so dass JAWS den Text der QuickInfo nicht liest.

Unified Service Desk Schaltfläche mit derselben Quickinfo.

Im Beispielsbild ist der Schaltflächenname ERINNERUNG anders als der QuickInfotext: ERINNERUNG EINRICHTEN. In diesem Szenario liest der JAWS-Bildschirm den Tooltip-Text.

Unified Service Desk Schaltfläche mit unterschiedlicher Quickinfo.

Sie können Skripte für Ihre Anwendung in JAWS schreiben. Weitere Informationen zum Schreiben von Skrips finden Sie unter Grundlage zum Schreiben von Skripts

Nachdem Sie das Skript geschrieben haben, benennen Sie die Datei nach dem Produktnamen (Beispielsweise UnifiedServiceDesk.jss). Diese werden Anwendungsskriptdateien genannt und müssen entweder im gemeinsamen Ordner von JAWS oder im Ordner für die Benutzereinstellungen gespeichert werden, damit sie zur Laufzeit mit der Anwendung geladen werden können. Weitere Informationen: JAWS-Skripte und -Skriptdateien.

JAWS-Support für nicht-fokussierbare Steuerelemente (nicht interaktive Steuerelemente)

Mit der Gestaltung des Produkts fokussiet sich die Registerkartenposition nicht auf das nicht-fokussierbare Steuerelement (Nicht-interaktives Steuerelement). JAWS Screenreader liest daher keine Steuerelemente, die nicht fokussierbar sind, wie z.B. Textblöcke, Bilder und Labels.

Problemumgehung

Eine der Möglichkeiten, JAWS Screenreader in die Lage zu versetzen, die nicht fokussierbaren Steuerelemente zu lesen, besteht darin, das nicht fokussierbare Steuerelement mit dem UserControl-Element zu umhüllen, wodurch JAWS die nicht fokussierbaren Steuerelemente lesen kann.

Notiz

Diese Methode zur Aktivierung der JAWS Screenreader-Unterstützung für nicht fokussierbare Steuerelemente ist nur ein Workaround und nicht der offiziell empfohlene Weg.

Wenn der JAWS Reader auf dem ersten fokussierbaren Steuerelement landet, liest er die nicht fokussierbaren Steuerelemente und dann die fokussierbaren Steuerelemente.

Das XAML-Beispiel für Sitzungs-Übersichtssteuerelement zeigt Ihnen die UserControl des Rasters an.

<TabControl xmlns:controlStyles="clr-namespace:Microsoft.Crm.UnifiedServiceDesk.Dynamics.Controls.Styles;assembly=Microsoft.Crm.UnifiedServiceDesk.Dynamics">
    <controlStyles:USDTab Header="General">
<UserControl>
        <Grid Margin="0"
          xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
          xmlns:CCA="clr-namespace:Microsoft.Crm.UnifiedServiceDesk.Dynamics;assembly=Microsoft.Crm.UnifiedServiceDesk.Dynamics">
<Grid.Resources>
<CCA:CRMImageConverter x:Key="CRMImageLoader" />
<Style x:Key="ImageLogo" TargetType="{x:Type Image}">
<Setter Property="Width" Value="16" /> 
<Setter Property="Height" Value="16" /> 
<!--<Setter Property="Margin" Value="5" /> -->
</Style>
    </Grid.Resources>            
<Grid.RowDefinitions>
                <RowDefinition Height="auto" />
                <RowDefinition Height="auto" />
                <RowDefinition Height="auto" />
                <RowDefinition Height="auto" />
                <RowDefinition Height="auto" />
                <RowDefinition Height="auto" />
            </Grid.RowDefinitions>
         <TextBlock Margin="5,6,0,0" Grid.Row="0" TextWrapping="Wrap" Padding="5,0,0,5"  FontFamily="Tohoma" FontSize="12" Text="Account Name: [[account.name]x]"   Foreground="#262626"/>
<TextBlock Margin="5,0,0,0" Grid.Row="4" TextWrapping="Wrap" Padding="3,0,0,3" FontFamily="Tohoma" FontSize="12" Style="{DynamicResource AutoCollapse}" Text="[[$Context.RevenuePotential]+]" />
<!--<TextBlock Margin="5,0,0,0" Grid.Row="1" TextWrapping="Wrap" Padding="3,0,0,3" Grid.ColumnSpan="3" FontFamily="Tohoma" FontSize="12" Style="{DynamicResource AutoCollapse}" Text="Phone: [[account.telephone1]x]"/>-->
<StackPanel  Orientation="Horizontal"  Grid.Row="2" Margin="5,0,0,0">
<Image Style="{DynamicResource ImageLogo}" Source="{Binding Source=msdyusd_Phone16, Converter={StaticResource CRMImageLoader}}" />
     <TextBlock  TextWrapping="Wrap" Padding="5,0,0,5" Text="Phone: " VerticalAlignment="Center"   Foreground="#262626" />
     <TextBlock  Padding="5,0,0,5" VerticalAlignment="Center">
     <Hyperlink Command="CCA:ActionCommands.DoActionCommand" CommandParameter="https://uii/CRM Global Manager/LaunchURL?callto:tel:[[account.telephone1]u+]" FontFamily="Tohoma" FontSize="12">[[account.telephone1]+]</Hyperlink>
       </TextBlock>
   </StackPanel >
<StackPanel  Orientation="Horizontal"  Grid.Row="1" Margin="5,0,0,0">
<Image Style="{DynamicResource ImageLogo}" Source="{Binding Source=msdyusd_Email16, Converter={StaticResource CRMImageLoader}}" />
<Label >
<TextBlock  TextWrapping="Wrap" Padding="3,0,0,3" Text="Email: [[Current Account.emailaddress1]+x]"   Foreground="#262626" />
</Label>
</StackPanel>
<TextBlock Margin="5,0,0,0" Grid.Row="3" TextWrapping="Wrap" Padding="5,0,0,5" Grid.ColumnSpan="3" FontFamily="Tohoma" FontSize="12" Style="{DynamicResource AutoCollapse}" Text="Primary Contact: [[account.primarycontactid.name]x]"   Foreground="#262626" />
</Grid>
</UserControl>
</controlStyles:USDTab>
<controlStyles:USDTab Header="Social Info">
    <Grid Margin="1"
       xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
       xmlns:CCA="clr-namespace:Microsoft.Crm.UnifiedServiceDesk.Dynamics;assembly=Microsoft.Crm.UnifiedServiceDesk.Dynamics">
     <Grid.RowDefinitions>
        <RowDefinition Height="auto" />
        <RowDefinition Height="auto" />
        <RowDefinition Height="auto" />
     </Grid.RowDefinitions>
      <TextBlock Margin="5,6,0,0" FontSize="12" Height="20" Grid.Row="0" Text="Twitter:     "   Foreground="#262626" >
       <Hyperlink Command="CCA:ActionCommands.DoActionCommand" CommandParameter="https://uii/Twitter/Navigate?about:blank">
               [[Account.msdyusd_twitter]x+]
       </Hyperlink>
     </TextBlock>
     <TextBlock Margin="5,0,0,0" FontSize="12" Height="50" Grid.Row="2"  Text="Facebook: "   Foreground="#262626">
        <Hyperlink Command="CCA:ActionCommands.DoActionCommand" CommandParameter="https://uii/Facebook/Navigate?about:blank">
                    [[Account.msdyusd_facebook]x+]
        </Hyperlink>
       </TextBlock>
        </Grid>
    </controlStyles:USDTab>
</TabControl>