.NET Framework에서 내게 필요한 옵션의 새로운 기능What's new in accessibility in .NET Framework

.NET Framework는 애플리케이션을 사용자에게 더욱 액세스 가능하도록 만드는 것을 목표로 합니다..NET Framework aims to make applications more accessible for your users. 내게 필요한 옵션 기능을 통해 애플리케이션은 사용자에게 보조 기술에 대한 적절한 환경을 제공할 수 있습니다.Accessibility features allow an application to provide an appropriate experience for users of Assistive Technology. .NET Framework 4.7.1부터 .NET Framework에 개발자가 액세스 가능한 애플리케이션을 만들도록 허용하는 다수의 내게 필요한 옵션 개선 사항이 포함되어 있습니다.Starting with .NET Framework 4.7.1, .NET Framework includes a large number of accessibility improvements that allow developers to create accessible applications.

내게 필요한 옵션 스위치Accessibility switches

.NET Framework 4.7 이전 버전을 대상으로 하지만 .NET Framework 4.7.1 이상에서 실행되는 경우 내게 필요한 옵션 기능으로 옵트인하도록 앱을 구성할 수 있습니다.You can configure your app to opt into accessibility features if it targets .NET Framework 4.7 or an earlier version but is running on .NET Framework 4.7.1 or later. .NET Framework 4.7.1 이상을 대상으로 하는 경우 레거시 기능(및 내게 필요한 옵션 기능을 활용하지 못하도록)을 사용하도록 앱을 구성할 수도 있습니다.You can also configure your app to use legacy features (and not take advantage of accessibility features) if it targets .NET Framework 4.7.1 or later. 내게 필요한 옵션 기능을 포함하는 각 .NET Framework 버전에는 애플리케이션 구성 파일의 <runtime> 섹션에서 <AppContextSwitchOverrides> 요소에 추가하는 버전별 내게 필요한 옵션 스위치가 있습니다.Each .NET Framework version that includes accessibility features has a version-specific accessibility switch, which you add to the <AppContextSwitchOverrides> element in the <runtime> section of the application's configuration file. 다음은 지원되는 스위치입니다.The following are the supported switches:

버전Version 스위치Switch
.NET Framework 4.7.1.NET Framework 4.7.1 "Switch.UseLegacyAccessibilityFeatures""Switch.UseLegacyAccessibilityFeatures"
.NET Framework 4.7.2.NET Framework 4.7.2 "Switch.UseLegacyAccessibilityFeatures.2""Switch.UseLegacyAccessibilityFeatures.2"
.NET Framework 4.8.NET Framework 4.8 "Switch.UseLegacyAccessibilityFeatures.3""Switch.UseLegacyAccessibilityFeatures.3"
.NET Framework 4.8의 2020년 8월 11일-KB4569746 누적 업데이트August 11, 2020-KB4569746 Cumulative Update for .NET Framework 4.8 "Switch.UseLegacyAccessibilityFeatures.4""Switch.UseLegacyAccessibilityFeatures.4"

내게 필요한 옵션 개선 사항 활용Taking advantage of accessibility enhancements

새로운 내게 필요한 옵션 기능은 .NET Framework 4.7.1 이상을 대상으로 하는 애플리케이션에 대해 기본적으로 활성화되어 있습니다.The new accessibility features are enabled by default for applications that target .NET Framework 4.7.1 or later. 또한 이전 버전의 .NET Framework를 대상으로 하지만 .NET Framework 4.7.1 이상에서 실행되는 애플리케이션은 애플리케이션의 구성 파일의 <runtime> 섹션에서 <AppContextSwitchOverrides> 요소에 스위치를 추가하고 해당 값을 false로 설정하여 레거시 내게 필요한 옵션 동작을 옵트아웃할 수 있습니다(따라서 내게 필요한 옵션 개선 사항 활용).In addition, applications that target an earlier version of the .NET Framework but are running on .NET Framework 4.7.1 or later can opt out of legacy accessibility behaviors (and thereby take advantage of accessibility improvements) by adding switches to the <AppContextSwitchOverrides> element in the <runtime> section of the application's configuration file and setting their value to false. 다음 코드 조각에서는 .NET Framework 4.7.1에 도입된 내게 필요한 옵션 개선 사항을 옵트인하는 방법을 보여 줍니다.The following snippet shows how to opt in to the accessibility enhancements that were introduced in .NET Framework 4.7.1:

<runtime>
    <!-- AppContextSwitchOverrides value attribute is in the form of 'key1=true|false;key2=true|false  -->
    <AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures=false" />
</runtime>

이후 .NET Framework 버전에서 내게 필요한 옵션 기능을 옵트인하도록 선택한 경우 이전 버전에서도 기능을 명시적으로 옵트인해야 합니다.If you choose to opt in to accessibility features in a later .NET Framework version, you must also explicitly opt in to the features from earlier versions. .NET Framework 4.7.1 및 4.7.2에서 둘 다 내게 필요한 옵션 개선 사항을 활용하도록 앱을 구성하려면 다음 <AppContextSwitchOverrides> 요소를 추가합니다.To configure your app to take advantage of accessibility improvements in both .NET Framework 4.7.1 and 4.7.2, add the the following <AppContextSwitchOverrides> element:

<runtime>
    <!-- AppContextSwitchOverrides value attribute is in the form of 'key1=true|false;key2=true|false  -->
    <AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures=false;Switch.UseLegacyAccessibilityFeatures.2=false" />
</runtime>

.NET Framework 4.7.1, 4.7.2, 4.8 및 .NET Framework 4.8 2020년 8월 누적 업데이트의 내게 필요한 옵션 개선 사항을 활용하도록 앱을 구성하려면 다음 <AppContextSwitchOverrides> 요소를 추가합니다.To configure your app to take advantage of accessibility improvements in .NET Framework 4.7.1, 4.7.2, 4.8, and the August 2020 cumulative update for .NET Framework 4.8, add the following <AppContextSwitchOverrides> element:

<runtime>
    <!-- AppContextSwitchOverrides value attribute is in the form of 'key1=true|false;key2=true|false  -->
    <AppContextSwitchOverrides value=Switch.UseLegacyAccessibilityFeatures=false|Switch.UseLegacyAccessibilityFeatures.2=false|Switch.UseLegacyAccessibilityFeatures.3=false|Switch.UseLegacyAccessibilityFeatures.4=false"/>
</runtime>

레거시 동작 복원Restoring legacy behavior

4.7.1부터 시작하는 .NET Framework의 버전을 대상으로 하는 애플리케이션은 애플리케이션 구성 파일의 <runtime> 섹션에서 <AppContextSwitchOverrides> 요소에 스위치를 추가하고 true로 해당 값을 설정하여 내게 필요한 옵션 기능을 사용하지 않도록 설정할 수 있습니다.Applications that target versions of .NET Framework starting with 4.7.1 can disable accessibility features by adding switches to the <AppContextSwitchOverrides> element in the <runtime> section of the application's configuration file and setting their value to true. 예를 들어 다음 구성은 .NET Framework 4.7.2에 도입된 내게 필요한 옵션 기능을 옵트아웃합니다.For example, the following configuration opts out of accessibility features introduced in .NET Framework 4.7.2:

<runtime>
    <!-- AppContextSwitchOverrides value attribute is in the form of 'key1=true|false;key2=true|false  -->
    <AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures.2=true" />
</runtime>

.NET Framework 4.8의 2020년 8월 11일 누적 업데이트에서 제공되는 내게 필요한 옵션의 새로운 기능What's new in accessibility in the August 11, 2020 Cumulative Update for .NET Framework 4.8

.NET Framework 4.8의 2020년 8월 11일-KB4569746 누적 업데이트에는 Windows Forms의 새로운 내게 필요한 옵션 기능이 포함되어 있습니다.The August 11, 2020-KB4569746 Cumulative Update for .NET Framework 4.8 includes new accessibility features in Windows Forms:

  • 화면 읽기 프로그램에서 PropertyGrid 컨트롤 항목 및 범주의 확장/축소 상태를 알리는 작업과 관련된 문제를 해결합니다.Addresses an issue with announcing PropertyGrid control items and a category's expanded/collapsed state by screen readers.

  • PropertyGrid 컨트롤 및 해당 내부 요소의 액세스 가능한 패턴을 업데이트합니다.Updates the accessible patterns of the PropertyGrid control and its inner elements.

  • 화면 읽기 프로그램에서 올바르게 알리도록 PropertyGrid 컨트롤 내부 요소의 액세스 가능한 이름을 업데이트합니다.Updates the accessible names of the PropertyGrid control inner elements so they're correctly announced by screen readers.

  • PropertyGridView 컨트롤의 경계 사각형 액세스 가능한 속성을 해결합니다.Addresses bounding rectangle accessible properties for the PropertyGridView controls.

  • 화면 읽기 프로그램이 DataGridView 콤보 상자 셀의 확장/축소 상태를 올바르게 알리도록 합니다.Enables screen readers to correctly announce the expanded/collapsed state of DataGridView combo box cells.

.NET Framework 4.8에서 내게 필요한 옵션의 새로운 기능What's new in accessibility in .NET Framework 4.8

.NET Framework 4.8에는 다음과 같은 영역의 새로운 내게 필요한 옵션 기능이 포함됩니다..NET Framework 4.8 includes new accessibility features in the following areas:

Windows FormsWindows Forms

.NET Framework 4.8에서 Windows Forms는 자주 사용되는 많은 컨트롤에 LiveRegions 및 알림 이벤트에 대한 지원을 추가합니다.In .NET Framework 4.8, Windows Forms adds support for LiveRegions and Notification Events to many commonly used controls. 또한 사용자가 키보드를 사용하여 컨트롤로 이동할 때 도구 설명에 대한 지원을 추가합니다.It also adds support for ToolTips when a user navigates to a control by using the keyboard.

레이블 및 StatusStrips에서 UIA LiveRegions 지원UIA LiveRegions Support in Labels and StatusStrips

UIA LiveRegions를 사용하면 애플리케이션 개발자는 사용자가 작업하는 위치와 별도로 위치한 컨트롤의 텍스트 변경 내용을 화면 readers에 알릴 수 있습니다.UIA LiveRegions allow application developers to notify screen readers of a text change in a control that is located apart from the location where the user is working. 예를 들어 연결 상태를 표시하는 StatusStrip 컨트롤에 유용합니다.This is useful, for example, for a StatusStrip control that shows a connection status. 연결이 끊어지고 상태가 변경되면 개발자가 화면 reader에 알리기를 원할 수 있습니다.If the connection is dropped and the status changes, the developer might want to notify the screen reader.

.NET Framework 4.8부터 Windows Forms는 LabelStatusStrip 컨트롤 모두에 대해 UIA LiveRegions를 구현합니다.Starting with .NET Framework 4.8, Windows Forms implements UIA LiveRegions for both the Label and StatusStrip controls. 예를 들어 다음 코드에서는 label1이라는 Label 컨트롤에서 LiveRegion을 사용합니다.For example, the following code uses the LiveRegion in a Label control named label1:

public Form1()
{
   InitializeComponent();
   label1.AutomationLiveSetting = AutomationLiveSetting.Polite;
}

…
Label1.Text = “Ready!”;

내레이터는 사용자가 애플리케이션과 상호 작용하는 위치에 관계없이 “준비”를 알립니다.Narrator announces “Ready” regardless of where the user is interacting with the application.

UserControl을 LiveRegion으로 구현할 수 있습니다.You can also implement your UserControl as a LiveRegion:

using System;
using System.Windows.Forms;
using System.Windows.Forms.Automation;

namespace WindowsFormsApplication
{
   public partial class UserControl1 : UserControl, IAutomationLiveRegion
   {
      public UserControl1()
      {
         InitializeComponent();
      }

      public AutomationLiveSetting AutomationLiveSetting { get; set; }
      private AutomationLiveSetting IAutomationLiveRegion.GetLiveSetting()
      {
         return this.AutomationLiveSetting;
      }

      protected override void OnTextChanged(EventArgs e)
      {
         base.OnTextChanged(e);
         AutomationNotifications.UiaRaiseLiveRegionChangedEvent(this.AccessibilityObject);
      }
   }
}

UIA 알림 이벤트UIA notification events

Windows 10 Fall Creators Update에 도입된 UIA 알림 이벤트를 사용하면 앱에서 UIA 이벤트를 발생시킬 수 있습니다. 이로 인해 내레이터가 UI에서 해당 컨트롤을 사용할 필요 없이 이벤트와 함께 제공하는 텍스트를 기반으로 간단히 알림을 만듭니다.The UIA Notification event, introduced in Windows 10 Fall Creators Update, allows your app to raise a UIA event, which leads to Narrator simply making an announcement based on text you supply with the event, without the need to have a corresponding control in the UI. 일부 시나리오에서는 앱의 액세스 가능성을 크게 개선하는 간단한 방법입니다.In some scenarios, this is a straightforward way to dramatically improve the accessibility of your app. 시간이 오래 걸릴 수 있는 일부 프로세스의 진행 상황을 알리는 데도 유용할 수 있습니다.In can also be useful to notify of the progress of some process that may take a long time. UIA 알림 이벤트에 대한 자세한 내용은 데스크톱 앱이 새 UI 알림 이벤트를 활용할 수 있나요?를 참조하세요.For more information about UIA Notification Events, see Can your desktop app leverage the new UI Notification event?.

다음 예제에서는 알림 이벤트를 발생시킵니다.The following example raises the Notification event:

MethodInfo raiseMethod = typeof(AccessibleObject).GetMethod("RaiseAutomationNotification");
if (raiseMethod != null) {
   raiseMethod.Invoke(progressBar1.AccessibilityObject, new object[3] {/*Other*/ 4, /*All*/ 2, "The progress is 50%." });
}

키보드 액세스에 대한 도구 설명ToolTips on keyboard access

.NET Framework 4.7.2 및 이전 버전을 대상으로 하는 애플리케이션에서는 마우스 포인터를 컨트롤로 이동하여 컨트롤 도구 설명이 팝업되도록 트리거할 수 있습니다.In applications that target .NET Framework 4.7.2 and earlier versions, a control tooltip can only be triggered to pop up by moving a mouse pointer into the control. .NET Framework 4.8부터 키보드 사용자는 한정자 키의 유무와 상관없이 Tab 키 또는 화살표 키를 사용하여 컨트롤을 중심으로 컨트롤의 도구 설명을 트리거할 수 있습니다.Starting with .NET Framework 4.8, a keyboard user can trigger a control's tooltip by focusing the control using a Tab key or arrow keys with or without modifier keys. 이 특정 액세스 가능성 개선을 위해서는 AppContext 스위치가 필요합니다.This particular accessibility enhancement requires an additional AppContext switch:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
   <startup>
      <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1"/>
   </startup>
   <runtime>
      <!-- AppContextSwitchOverrides values are in the form of 'key1=true|false;key2=true|false  -->
      <!-- Please note that disabling Switch.UseLegacyAccessibilityFeatures, Switch.UseLegacyAccessibilityFeatures.2 and Switch.UseLegacyAccessibilityFeatures.3 is required to disable Switch.System.Windows.Forms.UseLegacyToolTipDisplay -->
      <AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures=false;Switch.UseLegacyAccessibilityFeatures.2=false;Switch.UseLegacyAccessibilityFeatures.3=false;Switch.System.Windows.Forms.UseLegacyToolTipDisplay=false"/>
   </runtime>
</configuration>

다음 그림은 사용자가 키보드를 사용하여 단추를 선택한 경우의 도구 설명을 보여줍니다.The following figure shows the tooltip when the user has selected a button with the keyboard.

사용자가 키보드를 사용하여 단추로 이동하는 경우 도구 설명의 스크린샷

WPF(Windows Presentation Foundation)Windows Presentation Foundation (WPF)

.NET Framework 4.8부터 WPF에는 여러 가지 접근성 개선 사항이 포함되어 있습니다.Starting with .NET Framework 4.8, WPF includes a number of accessibility improvements.

화면 내레이터가 더 이상 축소되거나 숨겨긴 가시성이 있는 요소를 공지하지 않음Screen narrators no longer announce elements with Collapsed or Hidden visibility

축소되거나 숨겨진 가시성이 있는 요소는 더 이상 화면 reader에서 공지하지 않습니다.Elements with collapsed or hidden visibility are no longer announced by screen reader. 가시성이 Visibility.Collapsed 또는 Visibility.Hidden인 요소가 포함된 사용자 인터페이스는 사용자에게 공지된 경우 화면 readers에 의해 잘못 전달될 수 있습니다.User interfaces that contain elements with a Visibility of Visibility.Collapsed or Visibility.Hidden can be misrepresented by screen readers if they are announced to the user. .NET Framework 4.8부터 WPF는 더 이상 UIAutomation 트리의 컨트롤 뷰에 축소되거나 숨겨진 요소를 포함하지 않기 때문에 화면 readers는 이러한 요소를 더 이상 공지할 수 없습니다.Starting with .NET Framework 4.8, WPF no longer includes collapsed or hidden elements in the Control View of the UIAutomation tree, so the screen readers can no longer announce these elements.

비표시기(Adorner) 기반 텍스트 선택 영역과 함께 사용할 SelectionTextBrush 속성SelectionTextBrush property for use with non-Adorner based text selection

.NET Framework 4.7.2에서 WPF는 표시기(Adorner) 계층을 사용하지 않고 TextBoxPasswordBox 텍스트 선택 영역을 그리는 기능을 추가했습니다.In .NET Framework 4.7.2, WPF added the ability to draw TextBox and PasswordBox text selection without using the Adorner layer. 이 시나리오에서 선택한 텍스트의 전경색은 SystemColors.HighlightTextBrush에 의해 지정되었습니다.The foreground color of the selected text in this scenario was dictated by SystemColors.HighlightTextBrush.

.NET Framework 4.8은 개발자가 비표시기 기반 텍스트 선택 영역을 사용할 때 선택한 텍스트에 대한 특정 브러시를 선택할 수 있도록 하는 새 속성(SelectionTextBrush)을 추가합니다..NET Framework 4.8 adds a new property, SelectionTextBrush, that allows developers to select the specific brush for the selected text when using non-Adorner based text selection. 이 속성은 TextBoxBase에서 파생된 컨트롤과 비표시기 기반 텍스트 선택이 활성화된 WPF 애플리케이션의 PasswordBox 컨트롤에서만 작동합니다.This property works only on TextBoxBase-derived controls and the PasswordBox control in WPF applications with non-Adorner-based text selection enabled. RichTextBox 콘트롤에서는 작동하지 않습니다.It does not work on the RichTextBox control. 비표시기 기반 텍스트 선택 영역이 활성화되지 않은 경우 이 속성은 무시됩니다.If non-Adorner-based text selection is not enabled, this property is ignored.

이 속성을 사용하려면 XAML 코드에 추가하고 적절한 브러시 또는 바인딩을 사용하기만 하면 됩니다.To use this property, simply add it to your XAML code and use the appropriate brush or binding. 결과 텍스트 선택 영역은 다음과 같습니다.The resulting text selection looks like this:

단어 Hello World가 선택되어 실행 중인 앱의 스크린샷

SelectionBrushSelectionTextBrush 속성의 사용을 조합하여 적절한 것으로 간주되는 배경 및 전경색 조합을 생성할 수 있습니다.You can combine the use of the SelectionBrush and SelectionTextBrush properties to generate any background and foreground color combination that you deem appropriate.

UIAutomation ControllerFor 속성 지원Support for the UIAutomation ControllerFor property

UIAutomation의 ControllerFor 속성은 이 속성을 지원하는 자동화 요소에 의해 조작되는 자동화 요소의 배열을 반환합니다.UIAutomation’s ControllerFor property returns an array of automation elements that are manipulated by the automation element that supports this property. 이 속성은 자동 제안 접근성에 주로 사용됩니다.This property is commonly used for Auto-suggest accessibility. ControllerFor는 자동화 요소가 애플리케이션 UI 또는 데스크톱의 하나 이상의 세그먼트에 영향을 줄 때 사용됩니다.ControllerFor is used when an automation element affects one or more segments of the application UI or the desktop. 그렇지 않으면 제어 작업의 영향을 UI 요소와 연결시키기가 어렵습니다.Otherwise, it is hard to associate the impact of the control operation with UI elements. 이 기능은 컨트롤이 ControllerFor 속성 값을 제공하는 기능을 추가합니다.This feature adds the ability for controls to provide a value for the ControllerFor property.

.NET Framework 4.8에는 새로운 가상 메서드인 GetControlledPeersCore()이 추가됩니다..NET Framework 4.8 adds a new virtual method, GetControlledPeersCore(). ControllerFor 속성에 대한 값을 제공하려면 이 메서드를 재정의하고 이 AutomationPeer에 의해 조작되는 컨트롤에 대해 List<AutomationPeer>를 반환합니다.To provide a value for the ControllerFor property, simply override this method and return a List<AutomationPeer> for the controls being manipulated by this AutomationPeer:

public class AutoSuggestTextBox: TextBox
{
   protected override AutomationPeer OnCreateAutomationPeer()
   {
      return new AutoSuggestTextBoxAutomationPeer(this);
   }

   public ListBox SuggestionListBox;
}

internal class AutoSuggestTextBoxAutomationPeer : TextBoxAutomationPeer
{
   public AutoSuggestTextBoxAutomationPeer(AutoSuggestTextBox owner) : base(owner)
   {
   }

   protected override List<AutomationPeer> GetControlledPeersCore()
   {
      List<AutomationPeer> controlledPeers = new List<AutomationPeer>();
      AutoSuggestTextBox owner = Owner as AutoSuggestTextBox;
      controlledPeers.Add(UIElementAutomationPeer.CreatePeerForElement(owner.SuggestionListBox));
      return controlledPeers;
   }
}

키보드 액세스에 대한 도구 설명Tooltips on keyboard access

.NET Framework 4.7.2 및 이전 버전에서 도구 설명은 사용자가 마우스 커서를 컨트롤 위에 놓을 때만 표시됩니다.In .NET Framework 4.7.2 and earlier versions, tooltips display only when the user hovers the mouse cursor over a control. .NET Framework 4.8에서 도구 설명은 키보드 포커스뿐만 아니라 바로 가기 키를 통해서도 표시됩니다.In .NET Framework 4.8, tooltips also display on keyboard focus, as well as via a keyboard shortcut.

이 기능을 사용하려면 애플리케이션이 Switch.UseLegacyAccessibilityFeatures.3Switch.UseLegacyToolTipDisplay AppContext 스위치를 사용하여 .NET Framework 4.8을 대상으로 하거나 옵트인해야 합니다.To enable this feature, an application needs to target .NET Framework 4.8 or opt-in by using the Switch.UseLegacyAccessibilityFeatures.3 and Switch.UseLegacyToolTipDisplay AppContext switches. 다음은 샘플 애플리케이션 구성 파일입니다.The following is a sample application configuration file:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <startup>
      <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
   </startup>
   <runtime>
      <AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures=false;Switch.UseLegacyAccessibilityFeatures.2=false;Switch.UseLegacyAccessibilityFeatures.3=false;Switch.UseLegacyToolTipDisplay=false" />
   </runtime>
</configuration>

활성화되어 컨트롤이 키보드 포커스를 받으면 도구 설명이 포함된 모든 컨트롤이 표시됩니다.Once enabled, all controls that contain a tooltip display it once the control receives keyboard focus. 도구 설명은 시간이 경과하거나 키보드 포커스가 변경될 때 해제할 수 있습니다.The tooltip can be dismissed over time or when the keyboard focus changes. 사용자가 새로운 바로 가기 키인 Ctrl + Shift + F10을 사용하여 도구 설명을 수동으로 해제할 수도 있습니다.Users can also dismiss the tooltip manually by using a new keyboard shortcut, Ctrl + Shift + F10. 도구 설명이 해제되면 동일한 바로 가기 키를 사용하여 다시 표시할 수 있습니다.Once the tooltip has been dismissed it can be displayed again by using the same keyboard shortcut.

참고

Ribbon 컨트롤의 리본 도구 설명이 키보드 포커스에 표시되지 않습니다. 바로 가기 키를 통해서만 표시됩니다.Ribbon tooltips on Ribbon controls won’t show on keyboard focus; they only show via the keyboard shortcut.

SizeOfSet 및 PositionInSet UIAutomation 속성에 대한 지원 추가Added Support for SizeOfSet and PositionInSet UIAutomation properties

Windows 10에는 애플리케이션에서 집합의 항목 수를 설명하는 데 사용되는 두 개의 새로운 UIAutomation 속성(SizeOfSetPositionInSet)이 도입되었습니다.Windows 10 introduced two new UIAutomation properties, SizeOfSet and PositionInSet, which are used by applications to describe the count of items in a set. 그런 다음, 화면 readers와 같은 UIAutomation 클라이언트 애플리케이션은 이러한 속성에 대한 애플리케이션을 쿼리하고 애플리케이션의 UI를 정확하게 표시할 수 있습니다.UIAutomation client applications such as screen readers can then query an application for these properties and announce an accurate representation of the application’s UI.

.NET Framework 4.8부터 WPF 애플리케이션의 UIAutomation에 이러한 두 속성을 노출합니다.Starting with .NET Framework 4.8, WPF exposes these two properties to UIAutomation in WPF applications. 이는 두 가지 방법으로 수행할 수 있습니다.This can be accomplished in two ways:

  • 종속성 속성을 사용합니다.By using dependency properties.

    WPF는 두 개의 새 종속성 속성(AutomationProperties.SizeOfSetAutomationProperties.PositionInSet)을 추가합니다.WPF adds two new dependency properties, AutomationProperties.SizeOfSet and AutomationProperties.PositionInSet. 개발자는 XAML을 사용하여 해당 값을 설정할 수 있습니다.A developer can use XAML to set their values:

    <Button AutomationProperties.SizeOfSet="3"
      AutomationProperties.PositionInSet="1">Button 1</Button>
    
    <Button AutomationProperties.SizeOfSet="3"
      AutomationProperties.PositionInSet="2">Button 2</Button>
    
    <Button AutomationProperties.SizeOfSet="3"
      AutomationProperties.PositionInSet="3">Button 3</Button>
    
  • AutomationPeer 가상 메서드를 재정의합니다.By overriding AutomationPeer virtual methods.

    GetSizeOfSetCore()GetPositionInSetCore() 가상 메서드가 AutomationPeer 클래스에 추가되었습니다.The GetSizeOfSetCore() and GetPositionInSetCore() virtual methods been added to the AutomationPeer class. 개발자는 다음 예제와 같이 이러한 메서드를 재정의하여 SizeOfSetPositionInSet에 대한 값을 제공할 수 있습니다.A developer can provide values for SizeOfSet and PositionInSet by overriding these methods, as shown in the following example:

    public class MyButtonAutomationPeer : ButtonAutomationPeer
    {
      protected override int GetSizeOfSetCore()
      {
          // Call into your own logic to provide a value for SizeOfSet
          return CalculateSizeOfSet();
      }
    
      protected override int GetPositionInSetCore()
      {
          // Call into your own logic to provide a value for PositionInSet
          return CalculatePositionInSet();
      }
    }
    

또한 ItemsControl 인스턴스의 항목은 개발자의 추가 작업 없이 이러한 속성에 대한 값을 자동으로 제공합니다.In addition, items in ItemsControl instances provide a value for these properties automatically without additional action from the developer. ItemsControl이 그룹화되면 그룹의 컬렉션이 집합으로 표시되고, 각 그룹은 별도의 집합으로 계산되며, 그룹 내의 각 항목은 해당 그룹 내에서의 위치뿐 아니라 그룹의 크기를 제공합니다.If an ItemsControl is grouped, the collection of groups is represented as a set, and each group is counted as a separate set, with each item inside that group providing its position inside that group as well as the size of the group. 자동 값은 가상화의 영향을 받지 않습니다.Automatic values are not affected by virtualization. 항목이 실현되지 않더라도 여전히 집합의 전체 크기로 계산되며, 해당 형제 항목 세트의 위치에 영향을 줍니다.Even if an item is not realized, it is still counted toward the total size of the set and affects the position in the set of its sibling items.

자동 값은 애플리케이션이 .NET Framework 4.8을 대상으로 하는 경우에만 제공됩니다.Automatic values are only provided if the application targets .NET Framework 4.8. 이전 버전의 .NET Framework를 대상으로 하는 애플리케이션의 경우 다음 App.config 파일에 표시된 것처럼 Switch.UseLegacyAccessibilityFeatures.3 AppContext 스위치를 설정할 수 있습니다.For applications that target an earlier version of the .NET Framework, you can set the Switch.UseLegacyAccessibilityFeatures.3 AppContext switch, as shown in the following App.config file:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <startup>
      <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
   </startup>
   <runtime>
      <AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures=false;Switch.UseLegacyAccessibilityFeatures.2=false;Switch.UseLegacyAccessibilityFeatures.3=false" />
   </runtime>
</configuration>

Windows WF(Workflow Foundation) 워크플로 디자이너Windows Workflow Foundation (WF) workflow designer

워크플로 디자이너는 .NET Framework 4.8에서 다음과 같은 변경 내용을 포함합니다.The workflow designer includes the following changes in .NET Framework 4.8:

  • 내레이터를 사용하는 사용자는 FlowSwitch 케이스 레이블의 개선 사항을 볼 수 있습니다.Users using Narrator will see improvements in FlowSwitch case labels.

  • 내레이터를 사용하는 사용자는 단추 설명의 개선 사항을 볼 수 있습니다.Users using Narrator will see improvements in button descriptions.

  • 고대비 테마를 선택한 사용자는 워크플로 디자이너의 표시 유형에서 개선 사항 및 포커스 요소에 사용되는 요소와 더욱 분명한 선택 영역 상자 사이의 대조율과 같은 해당 컨트롤을 확인할 수 있습니다.Users who choose High Contrast themes will see improvements in the visibility of the Workflow Designer and its controls, like better contrast ratios between elements and more noticeable selection boxes used for focus elements.

애플리케이션이 .NET Framework 4.7.2 또는 이전 버전을 대상으로 하는 경우 애플리케이션 구성 파일에서 Switch.UseLegacyAccessibilityFeatures.3 AppContext 스위치false로 설정하여 이러한 변경 내용을 선택할 수 있습니다.If your application targets .NET Framework 4.7.2 or an earlier version, you can opt into these changes by setting the Switch.UseLegacyAccessibilityFeatures.3 AppContext switch to false in your application configuration file. 자세한 내용은 이 문서의 내게 필요한 옵션 개선 사항 활용 섹션을 참조하세요.For more information, see the Taking advantage of accessibility enhancements section in this article.

.NET Framework 4.7.2에서 내게 필요한 옵션의 새로운 기능What's new in accessibility in .NET Framework 4.7.2

.NET Framework 4.7.2에는 다음과 같은 영역의 새로운 내게 필요한 옵션 기능이 포함됩니다..NET Framework 4.7.2 includes new accessibility features in the following areas:

Windows FormsWindows Forms

고대비 테마에서 OS 정의 색OS-defined colors in High Contrast themes

.NET Framework 4.7.2부터 Windows Forms는 고대비 테마에서 운영 체제에 의해 정의된 색을 사용합니다.Starting with .NET Framework 4.7.2, Windows Forms uses colors defined by the operating system in High Contrast themes. 이는 다음 컨트롤에 영향을 줍니다.This affects the following controls:

내레이터 개선 사항Narrator improvements

.NET Framework 4.7.2부터 내레이터 지원이 다음과 같이 향상됩니다.Starting with .NET Framework 4.7.2, Narrator support is enhanced as follows:

DataGridView의 개선 사항DataGridView improvements

.NET Framework 4.7.2부터 DataGridView 컨트롤에는 다음과 같은 내게 필요한 옵션 개선 사항이 도입되었습니다.Starting with .NET Framework 4.7.2, the DataGridView control has introduced the following accessibility improvements:

개선된 시각적 표시Improved visual cues

  • Text 속성이 빈 RadioButtonCheckBox 컨트롤은 포커스를 받을 때 포커스 표시기를 표시합니다.The RadioButton and CheckBox controls with an empty Text property display a focus indicator when they receive the focus.

개선된 속성 표 지원Improved Property Grid Support

  • PropertyGrid 컨트롤 자식 요소는 PropertyGrid 요소를 사용하도록 설정한 경우에만 IsReadOnlyProperty 속성에 대한 true를 반환합니다.The PropertyGrid control child elements now return a true for the IsReadOnlyProperty property only when a PropertyGrid element is enabled.

  • PropertyGrid 컨트롤 자식 요소는 PropertyGrid 요소를 사용자가 변경할 수 있는 경우에만 IsEnabledProperty 속성에 대한 false를 반환합니다.The PropertyGrid control child elements return a false for the IsEnabledProperty property only when a PropertyGrid element can be changed by the user.

바로 가기 탐색 개선Improved keyboard navigation

WPF(Windows Presentation Foundation)Windows Presentation Foundation (WPF)

CheckBox 및 RadioButton 컨트롤에 대한 변경Changes to the CheckBox and RadioButton controls

.NET Framework 4.7.1 이전 버전에서 WPF System.Windows.Controls.CheckBoxSystem.Windows.Controls.RadioButton 컨트롤에는 일치하지 않는, 그리고 기본 및 고대비 테마에서는 잘못된 포커스 시각적 개체가 있습니다.In .NET Framework 4.7.1 and earlier versions, the WPF System.Windows.Controls.CheckBox and System.Windows.Controls.RadioButton controls have inconsistent and, in Classic and High Contrast themes, incorrect focus visuals. 이러한 문제는 컨트롤에 아무 콘텐츠 집합도 없는 경우 발생합니다.These issues occur in cases where the controls do not have any content set. 이렇게 하면 테마 혼동 및 포커스 시각적 개체 간 전환을 보기 어렵게 할 수 있습니다.This can make the transition between themes confusing and the focus visual hard to see.

NET Framework 4.7.2에서 이러한 시각적 개체는 이제 테마에서 더욱 일관적이고 기본 및 고대비 테마에서 더욱 쉽게 볼 수 있습니다.In .NET Framework 4.7.2, these visuals are now more consistent across themes and more easily visible in Classic and High Contrast themes.

WPF 애플리케이션에서 호스트되는 WinForms 컨트롤WinForms controls hosted in a WPF application

.NET Framework 4.7.1 이전 버전의 WPF 애플리케이션에서 호스팅되는 WinForms 컨트롤의 경우 사용자는 해당 계층의 첫 번째 또는 마지막 컨트롤이 WPF ElementHost 컨트롤이면 WinForms 계층을 탭아웃할 수 없습니다.For WinForms control hosted in a WPF application in .NET Framework 4.7.1 and earlier versions, users couldn't tab out of the WinForms layer if the first or last control in that layer is the WPF ElementHost control. .NET Framework 4.7.2에서 사용자는 이제 WinForms 계층을 탭아웃할 수 있습니다.In .NET Framework 4.7.2, users are now able to tab out of the WinForms layer.

그러나 WinForms 계층을 이스케이프하지 않는 포커스를 사용하는 자동화된 애플리케이션은 더 이상 예상대로 작동하지 않을 수 있습니다.However, automated applications that rely on focus never escaping the WinForms layer may no longer work as expected.

.NET Framework 4.7.1에서 내게 필요한 옵션의 새로운 기능What's new in accessibility in .NET Framework 4.7.1

.NET Framework 4.7.1에는 다음과 같은 영역의 새로운 내게 필요한 옵션 기능이 포함됩니다..NET Framework 4.7.1 includes new accessibility features in the following areas:

WPF(Windows Presentation Foundation)Windows Presentation Foundation (WPF)

화면 판독기 개선 사항Screen reader improvements

내게 필요한 옵션 개선 사항이 활성화된 경우 .NET Framework 4.7.1에는 화면 판독기에 영향을 주는 다음과 같은 향상 기능이 포함되어 있습니다.If accessibility improvements are enabled, .NET Framework 4.7.1 includes the following enhancements that affect screen readers:

  • .NET Framework 4.7 이전 버전에서 Expander 컨트롤은 단추로 화면 readers에서 공지되었습니다.In .NET Framework 4.7 and earlier versions, Expander controls were announced by screen readers as buttons. .NET Framework 4.7.1부터 확장/축소 가능한 그룹으로 올바르게 공지됩니다.Starting with .NET Framework 4.7.1, they are correctly announced as expandable/collapsible groups.

  • .NET Framework 4.7 이전 버전에서 DataGridCell 컨트롤은 “사용자 지정”으로 화면 readers에서 공지되었습니다.In .NET Framework 4.7 and earlier versions, DataGridCell controls were announced by screen readers as “custom.” .NET Framework 4.7.1부터 이제 데이터 표 셸(지역화된)로 올바르게 공지됩니다.Starting with .NET Framework 4.7.1, they are now correctly announced as data grid cell (localized).

  • .NET Framework 4.7.1부터 화면 readers는 편집 가능한 ComboBox의 이름을 공지합니다.Starting with .NET Framework 4.7.1, screen readers announce the name of an editable ComboBox.

  • .NET Framework 4.7 이전 버전에서 PasswordBox 컨트롤은 "보기에 항목 없음"으로 공지되었거나 그렇지 않은 경우 잘못된 동작이 있었습니다.In .NET Framework 4.7 and earlier versions, PasswordBox controls were announced as “no item in view” or had otherwise incorrect behavior. 이 문제는 .NET Framework 4.7.1부터 수정되었습니다.This issue is fixed starting with .NET Framework 4.7.1.

UIAutomation LiveRegion 지원UIAutomation LiveRegion support

내레이터와 같은 화면 판독기는 사용자가 일반적으로 포커스가 있는 UI 콘텐츠의 텍스트 음성 변환 출력에 의해 애플리케이션의 UI 콘텐츠를 읽는 데 도움을 줍니다.Screen readers such as Narrator help people read the UI contents of an application, usually by text-to-speech output of the UI content that has the focus. 그러나 UI 요소가 변경되고 포커스가 없는 경우 사용자는 알림을 받지 못하고 중요한 정보를 놓칠 수 있습니다.However, if a UI element changes and does not have the focus, the user may not be notified and may miss important information. 라이브 영역은 이 문제를 해결하는 것을 목표로 합니다.Live regions aim at solving this problem. 개발자는 화면 판독기 또는 다른 UIAutomation 클라이언트에게 UI 요소에 중요한 변경 내용이 만들어졌음을 알리는 데 사용할 수 있습니다.A developer can use them to inform the screen reader or any other UIAutomation client that an important change has been made to a UI element. 화면 판독기는 사용자에게 이 변경 내용을 알리는 방법 및 시점을 결정할 수 있습니다.The screen reader can then decide how and when to inform the user of this change.

라이브 영역을 지원하기 위해 다음과 같은 API가 WPF에 추가되었습니다.To support live regions, the following APIs have been added to WPF:

다음 예제와 같이 관심 있는 요소에 AutomationProperties.LiveSetting 속성을 설정하여 LiveRegion을 만들 수 있습니다.You can create a LiveRegion by setting the AutomationProperties.LiveSetting property on the element of interest, as shown in the following example:

<TextBlock Name="myTextBlock" AutomationProperties.LiveSetting="Assertive">announcement</TextBlock>

라이브 영역에 있는 데이터가 변경되고 화면 판독기에 알려야 하는 경우 다음 샘플과 같이 명시적으로 이벤트를 발생시킵니다.When the data in the live region changes and you need to inform a screen reader, you explicitly raise an event, as shown in the following sample.

var peer = FrameworkElementAutomationPeer.FromElement(myTextBlock);

peer.RaiseAutomationEvent(AutomationEvents.LiveRegionChanged);
Dim peer = FrameworkElementAutomationPeer.FromElement(myTextBlock)
peer.RaiseAutomationEvent(AutomationEvents.LiveRegionChanged)

고대비High contrast

.NET Framework 4.7.1부터 다양한 WPF 컨트롤에 고대비의 개선 사항이 만들어졌습니다.Starting with .NET Framework 4.7.1, improvements in high contrast have been made to various WPF controls. HighContrast 테마가 설정된 경우 이제 표시됩니다.They are now visible when the HighContrast theme is set. 여기에는 다음이 포함됩니다.These include:

  • Expander 컨트롤Expander control

    Expander 컨트롤에 대한 포커스 시각적 개체는 이제 표시됩니다.The focus visual for the Expander control is now visible. ComboBox, ListBoxRadioButton 컨트롤에 대한 키보드 시각적 개체도 표시됩니다.The keyboard visuals for ComboBox,ListBox, and RadioButton controls are visible as well. 예를 들어:For example:

    이전:Before:

    포커스가 있는 확장기 컨트롤 및 포커스 화면 효과가 없는 확장기 컨트롤의 스크린샷.

    이후:After:

    포커스가 있는 확장기 컨트롤(컨트롤의 텍스트 주위가 점선으로 표시됨)의 스크린샷

  • CheckBoxRadioButton 컨트롤CheckBox and RadioButton controls

    CheckBoxRadioButton 컨트롤의 텍스트는 이제 고대비 테마에서 선택하면 쉽게 볼 수 있습니다.The text in the CheckBox and RadioButton controls is now easier to see when selected in high contrast themes. 예를 들어:For example:

    이전:Before:

    고대비 테마에서 텍스트 가시성이 낮은 라디오 단추 및 확인 단추의 스크린샷

    이후:After:

    고대비 테마에서 텍스트 가시성이 높은 라디오 단추 및 확인 단추의 스크린샷

  • ComboBox 컨트롤ComboBox control

    .NET Framework 4.7.1부터 비활성화된 ComboBox 컨트롤의 테두리는 비활성화된 텍스트와 동일한 색입니다.Starting with .NET Framework 4.7.1, the border of a disabled ComboBox control is the same color as disabled text. 예를 들어:For example:

    이전:Before:

    테두리와 컨트롤 텍스트의 색상이 다른 비활성화된 콤보 상자의 스크린샷

    이후:After:

    테두리와 컨트롤 텍스트의 색상이 동일한 비활성화된 콤보 상자의 스크린샷

    또한 비활성화되고 포커스가 있는 단추는 올바른 테마 색을 사용합니다.In addition, disabled and focused buttons use the correct theme color.

    이전:Before:

    회색 텍스트로 나에게 포커스 지정이 표시되는 검은색 단추의 스크린샷

    이후:After:

    검은색 텍스트로 나에게 포커스 지정이 표시되는 파란색 단추의 스크린샷

    마지막으로 .NET Framework 4.7 이전 버전에서 ComboBox 컨트롤의 스타일을 Toolbar.ComboBoxStyleKey로 설정하면 드롭다운 화살표가 표시되지 않았습니다.Finally, in .NET Framework 4.7 and earlier versions, setting a ComboBox control’s style to Toolbar.ComboBoxStyleKey caused the drop-down arrow to be invisible. 이 문제는 .NET Framework 4.7.1부터 수정되었습니다.This issue is fixed starting with .NET Framework 4.7.1. 예를 들어:For example:

    이전:Before:

    보이지 않는 드롭다운 화살표가 있는 콤보 상자 컨트롤의 스크린샷

    이후:After:

    드롭다운 화살표가 표시된 콤보 상자 컨트롤의 스크린샷

  • DataGrid 컨트롤DataGrid control

    .NET Framework 4.7.1부터 DataGrid 컨트롤의 정렬 표시기 화살표는 이제 올바른 테마 색을 사용합니다.Starting with .NET Framework 4.7.1, the sort indicator arrow in DataGrid controls now uses correct theme colors. 예를 들어:For example:

    이전:Before:

    개선 사항 이전의 정렬 표시기 화살표의 스크린샷

    이후:After:

    개선 사항 이후의 정렬 표시기 화살표의 스크린샷

    또한 .NET Framework 4.7 이전 버전에서 기본 링크 스타일은 고대비 모드의 마우스에서 잘못된 색으로 변경되었습니다.In addition, in .NET Framework 4.7 and earlier versions, the default link style changed to an incorrect color on mouse over in high contrast modes. 이는 .NET Framework 4.7.1부터 해결되었습니다.This is resolved starting with .NET Framework 4.7.1. 마찬가지로 DataGrid 확인란 열은 .NET Framework 4.7.1부터 키보드 포커스 피드백에 대해 예상되는 색을 사용합니다.Similarly, DataGrid checkbox columns uses the expected colors for keyboard focus feedback starting with .NET Framework 4.7.1.

    이전:Before:

    빨간색으로 여기를 클릭하세요가 표시되는 링크의

    이후:After:

    노란색으로 여기를 클릭하세요가 표시되는 링크의

.NET Framework 4.7.1에서 WPF 내게 필요한 옵션 개선 사항에 대한 자세한 내용은 WPF의 내게 필요한 옵션 개선 사항을 참조하세요.For more information on WPF accessibility improvements in .NET Framework 4.7.1, see Accessibility improvements in WPF.

Windows Forms 내게 필요한 옵션 개선 사항Windows Forms accessibility improvements

.NET Framework 4.7.1에서 WinForms(Windows Forms)는 다음 영역에서 내게 필요한 옵션 변경 내용을 포함합니다.In .NET Framework 4.7.1, Windows Forms (WinForms) includes accessibility changes in the following areas.

고대비 모드에서 향상된 표시Improved display in High Contrast mode

.NET Framework 4.7.1부터 다양한 WinForms 컨트롤은 운영 체제에서 사용할 수 있는 고대비 모드의 향상된 렌더링을 제공합니다.Starting with .NET Framework 4.7.1, various WinForms controls offer improved rendering in the HighContrast modes available in the operating system. Windows 10은 일부 고대비 시스템 색에 대한 값을 변경했으며 Windows Forms는 Windows 10 Win32 프레임워크를 기반으로 합니다.Windows 10 has changed the values for some high contrast system colors, and Windows Forms is based on the Windows 10 Win32 framework. 최상의 환경을 위해 최신 버전의 Windows를 실행하고 테스트 애플리케이션에 app.manifest 파일을 추가하여 최신 OS로 옵트인하고 다음과 같이 보이도록 Windows 10 지원되는 OS 줄에 대한 주석을 제거합니다.For the best experience, run on the latest version of Windows and opt in to the latest OS changes by adding an app.manifest file in a test application and un-comment the Windows 10 supported OS line so that it looks the following:

<!-- Windows 10 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />

고대비 변경 내용의 몇 가지 예는 다음과 같습니다.Some examples of high contrast changes include:

  • MenuStrip 항목의 확인 표시는 보기가 쉽습니다.Checkmarks in MenuStrip items are easier to view.

  • 선택하면 비활성화된 MenuStrip 항목이 보기가 쉽습니다.When selected, disabled MenuStrip items are easier to view.

  • 선택된 Button 컨트롤의 텍스트는 선택 영역 색과 대비됩니다.Text in a selected Button control contrasts with the selection color.

  • 비활성화된 텍스트는 읽기가 쉽습니다.Disabled text is easier to read. 예를 들어:For example:

    이전:Before:

    접근성이 개선되기 전에 고대비 모드에서 실행되는 다른 컨트롤을 사용하는 앱의 스크린샷.

    이후:After:

    접근성이 개선된 후에 고대비 모드에서 실행되는 다른 컨트롤을 사용하는 앱의 스크린샷.

  • 스레드 예외 대화 상자의 고대비 개선 사항입니다.High contrast improvements in the Thread Exception Dialog.

향상된 내레이터 지원Improved Narrator support

.NET Framework 4.7.1에서 Windows Forms는 내레이터에 대한 다음과 같은 내게 필요한 옵션 개선 사항을 포함합니다.Windows Forms in .NET Framework 4.7.1 includes the following accessibility improvements for the Narrator:

  • MonthCalendar 컨트롤은 내레이터 및 다른 UI 자동화 도구로 액세스할 수 있습니다.The MonthCalendar control can be accessed by the Narrator, as well as by other UI automation tools.

  • CheckedListBox 컨트롤은 항목의 선택 상태가 변경되어 목록 항목의 값을 변경했음을 사용자에게 알릴 때 내레이터에 알립니다.The CheckedListBox control notifies Narrator when an item's check state has changed so the user is notified that they’ve changed the value of a list item.

  • DataGridViewCell 컨트롤은 올바른 읽기 전용 상태를 내레이터에 보고합니다.The DataGridViewCell control reports the correct read-only status to Narrator.

  • 내레이터는 이제 비활성화된 ToolStripMenuItem 텍스트를 읽을 수 있는 반면 이전에는 비활성화된 메뉴 항목을 건너뛰었습니다.Narrator can now read disabled ToolStripMenuItem text, whereas previously it would skip over disabled menu items.

UIAutomation 내게 필요한 옵션 패턴에 대한 향상된 지원Enhanced support for UIAutomation accessibility patterns

.NET Framework 4.7.1부터 내게 필요한 옵션 기술 도구의 개발자는 API 내게 필요한 옵션의 일반 패턴 및 여러 WinForms 컨트롤에 대한 속성을 활용할 수 있습니다.Starting with .NET Framework 4.7.1, developers of accessibility technology tools can leverage common API accessibility patterns and properties for several WinForms controls. 이러한 내게 필요한 옵션 개선 사항은 다음을 포함합니다.These accessibility improvements include:

향상된 속성 브라우저 환경Improved property browser experience

.NET Framework 4.7.1부터 Windows Forms는 다음을 포함합니다.Starting with .NET Framework 4.7.1, Windows Forms includes:

  • 다양한 드롭다운 선택 창을 통한 향상된 키보드 탐색Better keyboard navigation through the various drop-down selection windows.
  • 불필요한 탭 정지의 감소A reduction of unnecessary tab stops.
  • 컨트롤 형식의 향상된 보고Better reporting of control types.
  • 향상된 내레이터 동작Improved narrator behavior.

ASP.NET 웹 컨트롤ASP.NET web controls

.NET Framework 4.7.1 및 Visual Studio 2017 버전 15.3부터 ASP.NET은 ASP.NET 웹 컨트롤이 Visual Studio의 접근성 기술과 연동하는 방식을 개선합니다.Starting with .NET Framework 4.7.1 and Visual Studio 2017 version 15.3, ASP.NET improves how ASP.NET web controls work with accessibility technology in Visual Studio. 변경 내용은 다음과 같습니다.Changes include the following:

  • 자세히 보기 마법사의 필드 추가 대화 상자 또는 ListView 마법사의 ListView 구성 대화 상자와 같이 컨트롤에서 누락된 UI 액세스 가능성 패턴을 구현하도록 변경됨.Changes to implement missing UI accessibility patterns in controls, like the Add Field dialog in the Details View wizard, or the Configure ListView dialog of the ListView wizard.

  • 데이터 호출기 필드 편집기 와 같이 고대비 모드에서 디스플레이를 개선하도록 변경됨.Changes to improve the display in High Contrast mode, like the Data Pager Fields Editor.

  • DataPager 컨트롤의 호출기 필드 편집 마법사의 필드 대화 상자, ObjectContext 구성 대화 상자 또는 데이터 원본 구성 마법사의 데이터 선택 구성 대화 상자와 같은 컨트롤의 키보드 탐색 환경을 개선하도록 변경됨.Changes to improve the keyboard navigation experiences for controls, like the Fields dialog in the Edit Pager Fields wizard of the DataPager control, the Configure ObjectContext dialog, or the Configure Data Selection dialog of the Configure Data Source wizard.

.NET SDK Tools.NET SDK Tools

Configuration Editor 도구(SvcConfigEditor.exe)Service Trace Viewer 도구(SvcTraceViewer.exe)는 다양한 액세스 가능성 문제를 수정하여 향상되었습니다.The Configuration Editor Tool (SvcConfigEditor.exe) and Service Trace Viewer Tool (SvcTraceViewer.exe) have been improved by fixing varied accessibility issues. 이들 중 대부분은 정의되지 않은 이름이나 특정 UI 자동화 패턴이 올바르게 구현되지 않은 것과 같은 사소한 문제였습니다.Most of these were small issues, like a name not being defined or certain UI automation patterns not being implemented correctly. 많은 사용자가 이러한 잘못된 값을 인식하지 못하지만, 화면 판독기와 같은 보조 기술을 사용하는 고객은 이러한 SDK 도구를 보다 쉽게 사용할 수 있습니다.While many users won’t be aware of these incorrect values, customers who use assistive technologies like screen readers will find these SDK tools more accessible.

이러한 개선 사항은 키보드 포커스 순서 등의 일부 이전 동작을 변경합니다.These enhancements change some previous behaviors, such as keyboard focus order.

Windows WF(Workflow Foundation) 워크플로 디자이너Windows Workflow Foundation (WF) Workflow Designer

워크플로 디자이너에서 내게 필요한 옵션 변경 내용은 다음과 같습니다.Accessibility changes in the Workflow Designer include the following:

  • 일부 컨트롤에서 왼쪽에서 오른쪽으로, 위쪽에서 아래쪽으로 탭 순서를 변경합니다.The tab order changes to left to right and top to bottom in some controls:

  • 바로 가기를 통해 추가 함수가 지원됩니다.More functions are available via the keyboard:

    • 작업의 속성을 편집할 때 처음으로 포커스된 경우 바로 가기에서 속성 그룹을 축소할 수 있습니다.When editing the properties of an activity, property groups can be collapsed by keyboard the first time they are focused.

    • 경고 아이콘은 바로 가기에서 액세스할 수 있습니다.Warning icons are accessible by keyboard.

    • 바로 가기에서 속성 창의 추가 속성 단추에 액세스할 수 있습니다.The More Properties button in the Properties window is accessible by keyboard.

    • 바로 가기 사용자는 워크플로 디자이너의 인수변수 창에 있는 헤더 항목에 액세스할 수 있습니다.Keyboard users can access the header items in the Arguments and Variables panes of the Workflow Designer.

  • 다음과 같은 경우 포커스가 있는 항목의 표시 유형 향상Improved visibility of items with focus, such as when:

    • 워크플로 디자이너 및 작업 디자이너에서 사용하는 데이터 그리드에 행 추가Adding rows to data grids used by the Workflow Designer and activity designers.

    • ReceiveReplySendReply 작업에서 필드 누름Tabbing through fields in the ReceiveReply and SendReply activities.

    • 변수 또는 인수에 대한 기본값 설정Setting default values for variables or arguments

  • 이제 화면 읽기 프로그램이 다음 항목을 올바르게 인식합니다.Screen readers can now correctly recognize:

    • 워크플로 디자이너에서 설정된 중단점Breakpoints set in the workflow designer.

    • FlowSwitch<T>, FlowDecisionCorrelationScope 작업The FlowSwitch<T>, FlowDecision, and CorrelationScope activities.

    • Receive 작업의 콘텐츠The contents of the Receive activity.

    • InvokeMethod 작업의 대상 유형The Target Type for the InvokeMethod activity.

    • TryCatch 작업의 예외 콤보 상자 및 마지막 섹션The Exception combo box and the Finally section in the TryCatch activity.

    • 메시지 유형 콤보 상자, 상관 관계 이니셜라이저 추가 창의 분할기, 콘텐츠 정의 창 및 메시징 작업의 CorrelatesOn 정의 창(Receive, Send, SendReplyReceiveReply)The Message Type combo box, the splitter in the Add Correlation Initializers window, the Content Definition window, and the CorrelatesOn Definition window in the messaging activities (Receive, Send, SendReply, and ReceiveReply).

    • 상태 컴퓨터 전환 및 전환 대상State machine transitions and transitions destinations.

    • FlowDecision 작업의 주석 및 커넥터Annotations and connectors on FlowDecision activities.

    • 작업의 팝업(마우스 오른쪽 단추 클릭) 메뉴The context (right-click) menus for activities.

    • 속성 값 편집기, 검색 정리 단추, 범주별으로 및 사전순 정렬 단추 및 속성 그리드의 식 편집기 대화 상자The property value editors, the Clear Search button, the By Category and Alphabetical sort buttons, and the Expression Editor dialog in the properties grid.

    • 워크플로 디자이너의 확대/축소 백분율The zoom percentage in the Workflow Designer.

    • ParallelPick 작업의 구분 기호The separator in Parallel and Pick activities.

    • InvokeDelegate 작업The InvokeDelegate activity.

    • 사전 작업의 형식 선택 창(Microsoft.Activities.AddToDictionary<TKey,TValue>, Microsoft.Activities.RemoveFromDictionary<TKey,TValue>등)The Select Types window for dictionary activities (Microsoft.Activities.AddToDictionary<TKey,TValue>, Microsoft.Activities.RemoveFromDictionary<TKey,TValue>, etc.).

    • .NET 형식 찾아보기 및 선택 창The Browse and Select .NET Type window.

    • 워크플로 디자이너의 이동 경로Breadcrumbs in the Workflow Designer.

  • 고대비 테마를 선택한 사용자는 워크플로 디자이너의 표시 유형에서 여러 개선 사항 및 포커스 요소에 사용되는 요소와 더욱 분명한 선택 영역 상자 사이의 대조율과 같은 해당 컨트롤을 확인합니다.Users who choose High Contrast themes will see many improvements in the visibility of the Workflow Designer and its controls, like better contrast ratios between elements and more noticeable selection boxes used for focus elements.

참조See also