Dela via


Konfigurera JAWS-skärmläsare för Unified Service Desk

JAWS (Job Access With Speech) är ett datorskärmläsarprogram för Microsoft Windows som gör det möjligt för blinda och synskadade användare att läsa skärmen antingen med text-till-tal-utdata eller med en uppdateringsbar punktskriftsskärm.

Unified Service Desk stöder JAWS version 18 för Windows-skärmläsare för talutdata i Unified Service Desk-klienten. Alla Unified Service Desk-kontroller och anpassade kontroller som ingår i webbklientpaketet är JAWS-kompatibla. För de anpassade kontroller som du utvecklar som en del av lösningspaketet måste du definiera de egenskaper som krävs för att göra kontrollerna JAWS kompatibla.

JAWS-stöd för kontroller som kan fokuseras (interaktiva kontroller)

Du kan konfigurera stöd för JAWS-skärmläsare för kontroller som kan fokuseras (interaktiva kontroller), till exempel knappar, listruta, meny, alternativknapp och kryssruta.

För att JAWS-skärmläsaren ska kunna läsa en fokuserbar kontroll måste du ange ett värde för egenskapen AutomationProperties.Name Attached.

Till exempel:

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

JAWS-stöd för knappbeskrivning

Som standard stöder JAWS-skärmläsaren inte knappbeskrivningstext för läsverktygsknapp. Du kan dock skapa anpassade JAWS-skript så att JAWS-skärmläsaren kan läsa knappbeskrivningstext.

Här är ett exempelskript för att kontrollera knappnamn och knappbeskrivningstext (hjälptext). Om du inte uttryckligen konfigurerar knappbeskrivningstexten i Unified Service Desk tillämpar systemet knappnamnet på knappbeskrivningstexten. I sådana fall läser JAWS både knappnamnet och knappbeskrivningstexten. Om du vill undvika att läsa knappnamnet och knappbeskrivningstexten kan du skapa ett anpassat skript för att kontrollera om knappnamnet och knappbeskrivningstexten är desamma.

Om hjälptexten inte är samma som knappnamnet i exempelskriptet läser JAWS-skärmläsaren knappbeskrivningen (hjälptext).

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

I exempelbilden är knappnamnet och knappbeskrivningstexten samma: PÅMINNELSE. I det här scenariot söker skriptet efter knappnamnet och knappbeskrivningstexten, vilket är annorlunda och därför läser JAWS inte knappbeskrivningstexten.

Knappen Unified Service Desk med samma tootip.

I exempelbilden skiljer sig PÅMINNELSE-knappnamnet från knappbeskrivningstexten: ANGE PÅMINNELSE. I det här scenariot läser JAWS-skärmen knappbeskrivningstexten.

Knappen Unified Service Desk med en annan tootip.

Du kan skriva skript för ditt program i JAWS. Mer information om hur du skriver skript finns i Grunderna i skripthandboken.

När du har skrivit skriptet namnger du filen enligt produktnamnet (exempel: UnifiedServiceDesk.jss). Dessa kallas programskriptfil och måste sparas i mappen JAWS-delade inställningar eller användarinställningar för att kunna läsas in med programmet vid körning. Mer information: JAWS-skript och skriptfiler.

JAWS-stöd för icke-fokuserbara kontroller (icke-interaktiva kontroller)

Genom produktens design fokuserar inte tabbpositionen de icke-fokuserbara kontrollerna (icke-interaktiva kontroller). Därför läser JAWS-skärmläsaren inte kontroller som inte kan fokuseras, till exempel textblock, bild och etiketter.

Övergångslösning

Ett sätt att göra det möjligt för JAWS-skärmläsaren att läsa de icke-fokuserbara kontrollerna är att omsluta den icke-fokuserbara kontrollen med hjälp av UserControl-elementet , vilket gör det möjligt för JAWS att läsa de icke-fokuserbara kontrollerna.

Anmärkning

Den här metoden för att aktivera STÖD för JAWS-skärmläsare för kontroller som inte kan fokuseras är bara en lösning, och inte det officiellt rekommenderade sättet.

När JAWS-läsaren hamnar på den första fokuserbara kontrollen läser den icke-fokuserbara kontrollerna och läser sedan de fokuserbara kontrollerna.

XAML-exemplet för sessionsöversiktskontrollen visar userControl-omslutningen av rutnätet.

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