Настройка средства чтения с экрана JAWS для единой службы

JAWS (доступ к заданиям с речью) — это программа чтения с экрана компьютера для Microsoft Windows, которая позволяет пользователям считывать экран с выводом текста в речь или с помощью обновляемого дисплея Braille.

Unified Service Desk поддерживает JAWS версии 18 для средства чтения с экрана Windows для вывода речи в клиенте Unified Service Desk. Все элементы управления Unified Service Desk и пользовательские элементы управления, которые являются частью пакета веб-клиента, соответствуют JAWS. Для пользовательских элементов управления, которые вы разрабатываете в рамках пакета решения, необходимо определить необходимые свойства, чтобы обеспечить соответствие элементов управления JAWS.

Поддержка JAWS для фокусируемых элементов управления (интерактивные элементы управления)

Вы можете настроить поддержку средства чтения с экрана JAWS для элементов управления, которые являются фокусируемыми (интерактивными элементами управления), такими как кнопки, список, меню, переключатель и флажок.

Чтобы средство чтения с экрана JAWS читало фокусируемый элемент управления, необходимо указать значение для присоединенного свойства AutomationProperties.Name.

Рассмотрим пример.

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

Поддержка jawS для подсказки

По умолчанию средство чтения с экрана JAWS не поддерживает текст подсказки на панели инструментов. Однако можно создать пользовательские скрипты JAWS, чтобы средство чтения с экрана JAWS считывал текст подсказки.

Ниже приведен пример скрипта для проверки имени кнопки и текста подсказки (текст справки). Если текст подсказки не настроен явным образом, система применяет имя кнопки к тексту подсказки. В таком случае JAWS считывает имя кнопки и текст подсказки. Чтобы избежать чтения имени кнопки и текста подсказки, можно создать пользовательский скрипт, чтобы проверить, совпадает ли имя кнопки и текст подсказки.

Если текст справки не совпадает с именем кнопки, средство чтения с экрана JAWS считывает подсказку (текст справки).

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

В примере изображения имя кнопки и текст подсказки совпадают: НАПОМИНАНИЕ. В этом сценарии скрипт проверяет имя кнопки и текст подсказки, который отличается, поэтому JAWS не считывает текст подсказки.

Кнопка Unified Service Desk с той же подсказкой.

На примере изображения имя кнопки НАПОМИНАНИЯ отличается от текста подсказки: SET REMINDER. В этом сценарии экран JAWS считывает текст подсказки.

Кнопка Unified Service Desk с различными всплывающей подсказкой.

Скрипт можно написать для приложения в JAWS. Дополнительные сведения о написании скриптов см. в разделе "Основы скриптов вручную".

После написания скрипта назовите файл как имя продукта (например: UnifiedServiceDesk.jss). Они называются файлом скрипта приложения и должны быть сохранены в общей папке JAWS или в папке параметров пользователя для загрузки приложения во время выполнения. Дополнительные сведения: скрипты JAWS и файлы скриптов.

Поддержка JAWS для элементов управления без фокусировки (неинтерактивные элементы управления)

По дизайну продукта позиция вкладки не фокусирует не фокусируемые элементы управления (неинтерактивные элементы управления). Поэтому средство чтения с экрана JAWS не считывает элементы управления, которые не фокусируются, например текстовый блок, изображение и метки.

Обходной путь

Одним из способов включения средства чтения с экрана JAWS для чтения элементов управления, не ориентированных на фокус, является перенос элемента UserControl с помощью элемента UserControl , который позволяет JAWS считывать элементы управления без фокусировки.

Замечание

Этот метод включения поддержки средства чтения с экрана JAWS для элементов управления без фокусировки является просто решением, а не официальным рекомендуемым способом.

Когда средство чтения JAWS приземляется на первый фокусируемый элемент управления, считывает элементы управления без фокусировки, а затем считывает фокусируемые элементы управления.

В примере XAML для элемента управления "Обзор сеансов" отображается оболочка UserControl сетки.

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