Del via


Konfigurer JAWS-skærmlæser til Unified Service Desk

JAWS (Job Access With Speech) er et computerskærmlæserprogram til Microsoft Windows, der gør det muligt for blinde og synshandicappede brugere at læse skærmen enten med et tekst-til-tale-output eller med en opdaterbar brailleskærm.

Unified Service Desk understøtter JAWS version 18 til Windows-skærmlæser til taleoutput i Unified Service Desk-klienten. Alle Unified Service Desk-kontrolelementer og brugerdefinerede kontrolelementer, der er en del af webklientpakken, er JAWS-kompatible. For de brugerdefinerede kontrolelementer, du udvikler som en del af løsningspakken, skal du definere de nødvendige egenskaber for at gøre kontrolelementerne JAWS-kompatible.

JAWS-understøttelse af fokusbare kontrolelementer (interaktive kontrolelementer)

Du kan konfigurere understøttelse af JAWS-skærmlæser for kontrolelementer, der kan fokuseres på (interaktive kontrolelementer), f.eks. knapper, liste, menu, alternativknap og afkrydsningsfelt.

Hvis JAWS-skærmlæseren skal læse et kontrolelement, der kan fokuseres på, skal du angive en værdi for den AutomationProperties.Name vedhæftet egenskab.

Eksempel:

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

JAWS-understøttelse af værktøjstip

Som standard understøtter JAWS-skærmlæseren ikke læsning af værktøjslinjeknappers værktøjstiptekst. Du kan dog oprette brugerdefinerede JAWS-scripts for at gøre det muligt for JAWS-skærmlæseren at læse værktøjstiptekst.

Her er et eksempel på et script til kontrol af knapnavn og værktøjstiptekst (hjælp-tekst). Hvis du ikke konfigurerer teksten til værktøjstippet eksplicit i Unified Service Desk, anvender systemet knapnavnet på teksten i værktøjstippet. I så fald læser JAWS både knapnavnet og teksten til værktøjstippet. Hvis du vil undgå at læse knapnavnet og teksten i værktøjstippet, kan du oprette et brugerdefineret script for at kontrollere, om knapnavnet og teksten til værktøjstippet er ens.

Hvis hjælpteksten i eksempelscriptet ikke er den samme som knapnavnet, læser JAWS-skærmlæseren værktøjstippet (hjælpetekst).

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

På eksempelbilledet er knapnavnet og teksten til værktøjstippet den samme: PÅMINDELSE. I dette scenarie kontrollerer scriptet, om der er knapnavn og værktøjstiptekst, hvilket er anderledes, og derfor læser JAWS ikke teksten til værktøjstippet.

Unified Service Desk-knap med samme tooltip.

På eksempelbilledet er knapnavnet PÅMINDELSE anderledes end teksten i værktøjstippet: ANGIV PÅMINDELSE. I dette scenarie læser JAWS-skærmen teksten til værktøjstippet.

Unified Service Desk-knap med forskellige tooltips.

Du kan skrive script til dit program i JAWS. Du kan få flere oplysninger om, hvordan du skriver scripts, i Grundlæggende scripting-manual.

Når du har skrevet scriptet, skal du navngive filen i henhold til produktnavnet (f.eks. UnifiedServiceDesk.jss). Disse kaldes programscriptfil og skal gemmes enten i mappen JAWS shared eller user settings for at kunne indlæses sammen med programmet på kørselstidspunktet. Flere oplysninger: JAWS-scripts og scriptfiler.

JAWS-understøttelse af kontrolelementer, der ikke kan fokuseres på (ikke-interaktive kontrolelementer)

Ved design af produktet fokuserer tabulatorpositionen ikke de kontrolelementer, der ikke kan fokuseres på (ikke-interaktive kontrolelementer). Derfor læser JAWS-skærmlæseren ikke kontrolelementer, der ikke kan fokuseres på, f.eks. tekstblok, billede og etiketter.

Løsning

En af måderne at gøre det muligt for JAWS-skærmlæseren at læse de kontrolelementer, der ikke kan fokuseres på, er ved at ombryde det kontrolelement, der ikke kan fokuseres, ved hjælp af userControl-elementet , hvilket gør det muligt for JAWS at læse de kontrolelementer, der ikke kan fokuseres på.

Notat

Denne metode til aktivering af JAWS-skærmlæserunderstøttelse for kontrolelementer, der ikke kan fokuseres på, er blot en løsning og ikke den officielt anbefalede måde.

Når JAWS-læseren lander på det første kontrolelement, der kan fokuseres på, læser de kontrolelementer, der ikke kan fokuseres på, og læser derefter de kontrolelementer, der kan fokuseres på.

I XAML-eksemplet for kontrolelementet Session Overview vises UserControl-indkapslingen af grid'en.

<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>