Unified Service DeskのJAWSスクリーン リーダーの構成

JAWS (Job Access With Speech) は Microsoft Windows 用のコンピューター スクリーン リーダー プログラムです。これを使用すると視覚障害を持つユーザはテキスト音声出力、またはリフレッシュ可能な点字画面により画面を読むことができます。

Unified Service Desk は、Unified Service Desk クライアントにてスピーチ出力の Windows スクリーン リーダー用 JAWS バージョン 18 をサポートします。 Web クライアント パッケージの一部である 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 スクリーン リーダーがツールヒント テキストを読み上げ可能にすることができます。

これはボタン名およびツールヒント テキスト (ヘルプ テキスト) を確認するためのサンプル スクリプトです。 Unified Service Desk では、ツールヒント テキストを明示的に設定しない場合、ボタン名がツールヒント テキストに適用されます。 この場合、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

例の図では、ボタン名およびツールヒント テキストが同じ REMINDER です。 このシナリオでは、スクリプトはボタン名およびツールヒント テキストを確認し、それが異なるため、JAWS はツールヒント テキストは読み取りません。

同じヒントを備えた Unified Service Desk のボタン。

例の図では、REMINDER ボタン名はツールヒント テキスト SET REMINDER と異なります。 このシナリオでは、JAWS スクリーンはツールヒント テキストを読み取ります。

異なるヒントを備えた Unified Service Desk ボタン。

アプリケーション用スクリプトを JAWS で記述することができます。 スクリプト記述の詳細については、スクリプトの基本マニュアル を参照してください。

スクリプトを記述後、ファイルに製品名のような名前を付けます (例: UnifiedServiceDesk.jss)。 これらはアプリケーション スクリプト ファイルと呼ばれ、実行時にアプリケーションと共にロードされるためには JAWS 共有フォルダーまたはユーザー設定フォルダーのいずれかに保存する必要があります。 詳細については、JAWS スクリプトおよびスクリプト ファイル を参照してください。

フォーカス不可のコントロールのための JAWS サポート (非対話形式のコントロール)

製品の設計により、タブ位置はフォーカスできないコントロールをフォーカスしません (非対話形式のコントロール)。 したがって、JAWS スクリーン リーダーは、テキスト ブロック、画像、およびラベルなどのフォーカスできないコントロールを読み取りません。

回避策

JAWS スクリーン リーダーがフォーカスされないコントロールの読み取りを可能にする 1 つの方法は、UserControl 要素を使用してフォーカスされないコントロールをパッケージ化することで、これにより JAWS はフォーカスされないコントロールを読み取ることができます。

Note

フォーカスされないコントロールに対するサポートを 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>