Novinky v přístupnosti v rozhraní .NET Framework

Cílem rozhraní .NET Framework je zajistit, aby aplikace byly pro vaše uživatele přístupnější. Funkce přístupnosti umožňují aplikaci poskytovat uživatelům technologie usnadnění vhodné prostředí. Počínaje rozhraním .NET Framework 4.7.1 obsahuje rozhraní .NET Framework velké množství vylepšení přístupnosti, která vývojářům umožňují vytvářet přístupné aplikace.

Přepínače přístupnosti

Aplikaci můžete nakonfigurovat tak, aby se přihlásila k funkcím přístupnosti, pokud cílí na .NET Framework 4.7 nebo starší verzi, ale běží na rozhraní .NET Framework 4.7.1 nebo novějším. Pokud cílí na rozhraní .NET Framework 4.7.1 nebo novější, můžete aplikaci také nakonfigurovat tak, aby používala starší funkce (a nevyužívá funkce přístupnosti). Každá verze rozhraní .NET Framework, která obsahuje funkce přístupnosti, má přepínač přístupnosti specifický pro verzi, který přidáte do <AppContextSwitchOverrides> elementu v <runtime> části konfiguračního souboru aplikace. Podporované přepínače jsou následující:

Verze Přepínač
.NET Framework 4.7.1 Switch.UseLegacyAccessibilityFeatures
.NET Framework 4.7.2 Switch.UseLegacyAccessibilityFeatures.2
.NET Framework 4.8 Switch.UseLegacyAccessibilityFeatures.3
11. srpna 2020 KB4569746 kumulativní aktualizace pro rozhraní .NET Framework 4.8 Switch.UseLegacyAccessibilityFeatures.4
.NET Framework 4.8.1 Switch.UseLegacyAccessibilityFeatures.5

Využití výhod vylepšení přístupnosti

Nové funkce přístupnosti jsou ve výchozím nastavení povolené pro aplikace, které cílí na rozhraní .NET Framework 4.7.1 nebo novější. Kromě toho aplikace, které cílí na starší verzi rozhraní .NET Framework, ale jsou spuštěny v rozhraní .NET Framework 4.7.1 nebo novější, mohou vyjádřit nesouhlas s chováním starší verze přístupnosti (a tím využít vylepšení přístupnosti) přidáním přepínačů do <AppContextSwitchOverrides> prvku v <runtime> části konfiguračního souboru aplikace a nastavením jejich hodnoty na false. Následující fragment kódu ukazuje, jak se přihlásit k vylepšením přístupnosti, která byla zavedena v rozhraní .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>

Pokud se rozhodnete přihlásit k funkcím přístupnosti v novější verzi rozhraní .NET Framework, musíte také výslovně vyjádřit výslovný souhlas s funkcemi z dřívějších verzí. Pokud chcete aplikaci nakonfigurovat tak, aby využívala vylepšení přístupnosti v rozhraní .NET Framework 4.7.1 a 4.7.2, přidejte následující <AppContextSwitchOverrides> prvek:

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

Pokud chcete aplikaci nakonfigurovat tak, aby využívala vylepšení přístupnosti v rozhraní .NET Framework 4.7.1, 4.7.2, 4.8 a kumulativní aktualizaci ze srpna 2020 pro rozhraní .NET Framework 4.8, přidejte následující <AppContextSwitchOverrides> prvek:

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

Obnovení staršího chování

Aplikace, které cílí na verze rozhraní .NET Framework počínaje verzí 4.7.1, mohou zakázat funkce přístupnosti přidáním přepínačů do <AppContextSwitchOverrides> prvku v <runtime> části konfiguračního souboru aplikace a nastavením jejich hodnoty na true. Například následující konfigurace se odhlásí z funkcí přístupnosti zavedených v rozhraní .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>

Novinky v přístupnosti v rozhraní .NET Framework 4.8.1

.NET Framework 4.8.1 obsahuje nové funkce přístupnosti v následujících oblastech:

Windows Forms

Přidání a vylepšení reprezentací UIA

Před rozhraním .NET Framework 4.8.1 chybí podpora model Windows Forms pro řadu vzorů UIA pro podporu technologie usnadnění pro interakci s aplikacemi. Tento nedostatek může způsobit, že Program Předčítání nebo jiné čtečky obrazovky hlásí neúplné nebo nesprávné informace. Může také ovlivnit důležité funkce, jako je přesunutí kurzoru přes text v ovládacím TextBox prvku. V rozhraní .NET Framework 4.8.1 byly implementovány všechny požadované vzory pro běžné ovládací prvky. Tato nová funkce poskytuje uživatelům technologie usnadnění mnohem bohatší prostředí interakce s aplikacemi.

  • Přidání podpory pro model rozbalení nebo sbalení UIA do DateTimePicker ovládacího prvku
  • Přidání podpory UIA do MonthCalendar ovládacího prvku Nástroje pro technologie usnadnění, jako je Předčítání, teď můžou procházet jednotlivá data v ovládacím prvku.
  • Implementovaná podpora textového vzoru pro všechny textové ovládací prvky, včetně TextBoxovládacích prvků , MaskedTextBox, PropertyGrid upravit ovládací prvek , DataGridViewTextBoxCellToolStripTextBoxa DomainUpDown ovládacích prvků.
  • ToolTip nyní se řídí pokyny WCAG2.1, aby byly trvalé, zavřené a najeté myší ve Windows 11. Změny chování popisu jsou omezené na systémy Windows 11, které mají nainstalované rozhraní .NET Framework 4.8.1, a platí pouze pro aplikace, u kterých nebyl pro popis nastavený časový limit. Popisy, které se uchovávají, je možné zavřít klávesou Esc nebo klávesou Ctrl nebo přechodem na ovládací prvek s jinou sadou popisků.

Různé opravy chyb pro stávající funkce přístupnosti

  • Program Předčítání se teď může soustředit na prázdný DataGridView ovládací prvek.
  • Vyřešili jsme problém, který způsoboval, že čtečky obrazovky počítaly skryté sloupce při oznamování počtu sloupců v ovládacím DataGridView prvku.
  • Vyřešili jsme problém, který způsoboval DataGridView ignorování nastavení písma nastaveného v DataGridviewCellStyle případě, že podkladový formulář měl Font vlastnost, která se liší od DefaultFont.
  • AccessibleName Aktualizace vlastnosti interních DataGridView posuvníků ovládacího prvku, aby se odebral text "Posuvník".
  • Opravili jsme barvu DataGridViewLinkCell buňky, když je buňka vybraná.
  • Opravili jsme problém s vlastními DataGridView ovládacími prvky, kdy nebyly ControlType pro vlastní DataGridViewCell prvky k dispozici nebo LocalizedControlType nebyly k dispozici.
  • Aktualizace poměru světelnosti na 3,5:1 pro ToolStripButton ovládací prvky, které jsou nastaveny ToolStripRenderMode na System.
  • Vylepšená navigace pomocí klávesnice, ToolStrip když je ToolStripComboBox prvek typu.
  • Aktualizovali jsme barvu pozadí v režimu vysokého kontrastu ToolStripButton .
  • Zajistili jsme, že je k dispozici ohraničující obdélník pro technologie usnadnění pro ToolStripSeparatorzařízení .
  • Opravili jsme problém, který mohl způsobit chybové ukončení čtečky obrazovky JAWS při čtení PropertyGrid ovládacího prvku.
  • Ujistili jste se, že se strom PropertyGrid hierarchie UIA ovládacího prvku aktualizuje, když se rozbalí složitá položka Font . Také se ujistěte, že se strom správně aktualizuje, když je položka sbalená a už není viditelná.
  • PropertyGrid kategorie nyní mají lokalizovaný typ PropertyGrid categoryovládacího prvku .
  • Opravili jsme problém, ComboBox který způsoboval chybové ukončení aplikace v části Přístupnost Přehledy pro Windows.
  • Aktualizovali jsme barvu ohraničení, Button aby byla ve výchozích barvách kontrastnější.
  • Povolili jsme nástroje technologie usnadnění pro přístup k ControlBox tlačítkům maximalizované podřízené formuláře MDI.
  • Vlastnost AccessibleNameDomainUpDown ovládacího prvku má novou výchozí hodnotu prázdného řetězce. Prázdný řetězec doporučí vývojářům, aby místo přijetí předchozí neprázdné výchozí hodnoty vytvořili smysluplný název.
  • Aktualizovali AccessibleName jsme vlastnost tlačítka Tisk z PrintPreviewDialog tlačítka Tisk na Tisk, aby se zabránilo redundanci, když čtečky obrazovky oznamují ovládací prvek a jeho typ.
  • Aktualizace ovládacích prvků seznamu UIA pro odebrání prázdného prvku seznamu, když PropertyGrid je buňka typu ComboBox zavřená a už není viditelná.

Windows Presentation Foundation (WPF)

Vylepšení zpracování popisů přístupnosti

V této verzi wpf vylepšil prostředí tím, že zajistilo, že popis v aktuálním okně lze snadno zavřít pomocí klávesy Esc, klávesy Ctrl (samostatně) nebo kombinace Ctrl+Shift+F10. Rozsah klávesy Esc byl v této verzi omezen tak, aby platil pouze pro aktuální okno, kdy se dříve použil na jakýkoli otevřený popis v aplikaci. Ve výchozím nastavení budou popisy WPF postupovat podle pokynů WCAG2.1, aby byly trvalé, zavřené a najeté myší.

Novinky v přístupnosti v kumulativní aktualizaci z 11. srpna 2020 pro rozhraní .NET Framework 4.8

Kumulativní aktualizace z 11. srpna 2020 KB4569746 pro rozhraní .NET Framework 4.8 obsahuje nové funkce přístupnosti v model Windows Forms:

  • Řeší problém s oznámením PropertyGrid položek ovládacích prvků a rozbaleným nebo sbaleným stavem kategorií čtečkami obrazovky.

  • Aktualizace přístupných vzorů PropertyGrid ovládacího prvku a jeho vnitřních prvků.

  • Aktualizace přístupných názvů vnitřních PropertyGrid prvků ovládacího prvku, aby čtečky obrazovky správně oznamovali.

  • Adresy ohraničující obdélník přístupné vlastnosti ovládacích PropertyGridView prvků.

  • Umožňuje čtečkám obrazovky správně oznamovat rozbalený nebo sbalený stav buněk se seznamem DataGridView .

Novinky v přístupnosti v rozhraní .NET Framework 4.8

.NET Framework 4.8 obsahuje nové funkce přístupnosti v následujících oblastech:

Windows Forms

V rozhraní .NET Framework 4.8 model Windows Forms přidává podporu událostí liveregion a oznámení do mnoha běžně používaných ovládacích prvků. Přidává také podporu nástroje Tipy když uživatel přejde na ovládací prvek pomocí klávesnice.

Podpora uiA LiveRegions v popiscích a statusStrips

UIA LiveRegions umožňuje vývojářům aplikací upozornit čtečky obrazovky na změnu textu v ovládacím prvku, který se nachází mimo umístění, kde uživatel pracuje. To je užitečné například pro StatusStrip ovládací prvek, který zobrazuje stav připojení. Pokud se připojení přeruší a stav se změní, může vývojář upozornit čtečku obrazovky.

Počínaje rozhraním .NET Framework 4.8 model Windows Forms implementuje rozhraní UIA LiveRegions pro ovládací Label prvky i StatusStrip ovládací prvky. Například následující kód používá LiveRegion v ovládacím Label prvku s názvem label1:

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

…
Label1.Text = "Ready!";

Program Předčítání oznámí "Připraveno" bez ohledu na to, kde uživatel pracuje s aplikací.

Můžete také implementovat svoji UserControl oblast jako 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);
      }
   }
}

Události oznámení UIA

Událost oznámení UIA, která byla představena ve Windows 10 Fall Creators Update, umožňuje vaší aplikaci vyvolat událost UIA, což vede k tomu, že Program Předčítání jednoduše vytvoří oznámení na základě textu, který zadáte s událostí, aniž by musela mít odpovídající ovládací prvek v uživatelském rozhraní. V některých scénářích je to jednoduchý způsob, jak výrazně zlepšit přístupnost aplikace. In může být také užitečné informovat o průběhu některého procesu, který může trvat dlouhou dobu. Další informace o událostech oznámení UIA najdete v tématu Může vaše desktopová aplikace využívat novou událost oznámení uživatelského rozhraní?.

Následující příklad vyvolá událost Oznámení:

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

Nástroj Tipy při přístupu pomocí klávesnice

V aplikacích, které cílí na rozhraní .NET Framework 4.7.2 a starší verze, lze popis ovládacího prvku aktivovat pouze tak, že do ovládacího prvku přesune ukazatel myši. Od rozhraní .NET Framework 4.8 může uživatel klávesnice aktivovat popis ovládacího prvku tak, že ovládací prvek zaměří pomocí klávesy Tab nebo kláves se šipkami s modifikačními klávesami nebo bez. Toto konkrétní vylepšení přístupnosti vyžaduje další přepínač AppContext:

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

Následující obrázek znázorňuje popis, když uživatel vybral tlačítko s klávesnicí.

Screenshot of tooltip when user navigates to button with the keyboard.

Windows Presentation Foundation (WPF)

Počínaje rozhraním .NET Framework 4.8 obsahuje WPF řadu vylepšení přístupnosti.

Předčítání obrazovky už neoznamuje prvky sbalenou nebo skrytou viditelností

Čtečka obrazovky už čtečku obrazovky nehlásí prvky s sbalenou nebo skrytou viditelností. Uživatelská rozhraní obsahující prvky s viditelností Visibility.Collapsed nebo Visibility.Hidden můžou být chybně reprezentována čtečkami obrazovky, pokud jsou uživateli oznámeny. Počínaje rozhraním .NET Framework 4.8 už WPF neobsahuje sbalené ani skryté prvky ve stromovém zobrazení ovládacího prvku UIAutomation, takže čtečky obrazovky už tyto prvky neoznamují.

SelectionTextBrush vlastnost pro použití s jiným než adornerem založeným na výběru textu

V rozhraní .NET Framework 4.7.2 přidal WPF možnost kreslit TextBox a PasswordBox výběr textu bez použití vrstvy Adorner. Barva popředí vybraného textu v tomto scénáři byla diktována uživatelem SystemColors.HighlightTextBrush.

Rozhraní .NET Framework 4.8 přidá novou vlastnost, SelectionTextBrushkterá vývojářům umožňuje vybrat konkrétní štětec pro vybraný text při použití výběru textu založeného na adorneru. Tato vlastnost funguje pouze na TextBoxBase-odvozených ovládacích prvcích a ovládacích PasswordBox prvcích v aplikacích WPF s povoleným výběrem textu, který není založený na Adorneru. Na ovládacím RichTextBox prvku nefunguje. Pokud není povolen výběr textu, který není založený na Adorneru, bude tato vlastnost ignorována.

Pokud chcete tuto vlastnost použít, jednoduše ji přidejte do kódu XAML a použijte příslušný štětec nebo vazbu. Výsledný výběr textu vypadá takto:

Screenshot of the app running with the words Hello World selected.

Pomocí vlastností SelectionBrush a SelectionTextBrush vlastností můžete vygenerovat libovolnou kombinaci barev pozadí a popředí, kterou považujete za vhodné.

Podpora vlastnosti UIAutomation ControllerFor

Vlastnost UIAutomation ControllerFor vrací pole prvků automatizace, které jsou manipulovány prvkem automatizace, který podporuje tuto vlastnost. Tato vlastnost se běžně používá pro automatické návrhy přístupnosti. ControllerFor používá se, když prvek automatizace ovlivňuje jeden nebo více segmentů uživatelského rozhraní aplikace nebo desktopu. Jinak je obtížné přidružit vliv řídicí operace k prvkům uživatelského rozhraní. Tato funkce přidává možnost ovládacích prvků poskytovat hodnotu vlastnosti ControllerFor .

.NET Framework 4.8 přidá novou virtuální metodu . GetControlledPeersCore() Chcete-li poskytnout hodnotu vlastnosti ControllerFor , jednoduše přepsat tuto metodu a vrátit List<AutomationPeer> pro ovládací prvky manipulované tímto AutomationPeerzpůsobem:

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

Popisy pro přístup pomocí klávesnice

V rozhraní .NET Framework 4.7.2 a starších verzích se popisy zobrazují jenom v případě, že uživatel najede myší na ovládací prvek. V rozhraní .NET Framework 4.8 se popisy zobrazují také na fokusu klávesnice a také pomocí klávesové zkratky.

Aby bylo možné tuto funkci povolit, musí aplikace cílit na rozhraní .NET Framework 4.8 nebo vyjádřit výslovný souhlas pomocí Switch.UseLegacyAccessibilityFeatures.3 přepínačů a Switch.UseLegacyToolTipDisplaypřepínačů AppContext . Následuje ukázkový konfigurační soubor aplikace:

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

Po povolení se zobrazí všechny ovládací prvky, které obsahují popisek, jakmile ovládací prvek obdrží fokus klávesnice. Popis můžete zavřít v průběhu času nebo když se fokus klávesnice změní. Uživatelé také můžou popis zavřít ručně pomocí nové klávesové zkratky Ctrl+Shift+F10. Jakmile popis zavřete, můžete ho znovu zobrazit pomocí stejné klávesové zkratky.

Poznámka:

Popisy pásu karet na Ribbon ovládacích prvcích se nezobrazují na fokusu klávesnice. Zobrazují se jenom přes klávesovou zkratku.

Přidání podpory vlastností SizeOfSet a PositionInSet UIAutomation

Windows 10 zavedl dvě nové vlastnosti UIAutomation a SizeOfSetPositionInSet, které jsou používány aplikacemi k popisu počtu položek v sadě. Klientské aplikace UIAutomation, jako jsou čtečky obrazovky, pak mohou dotazovat aplikaci na tyto vlastnosti a oznámit přesnou reprezentaci uživatelského rozhraní aplikace.

Počínaje rozhraním .NET Framework 4.8 wpF zveřejňuje tyto dvě vlastnosti pro UIAutomation v aplikacích WPF. Toho lze dosáhnout dvěma způsoby:

  • Pomocí vlastností závislostí.

    WPF přidá dvě nové vlastnosti AutomationProperties.SizeOfSet závislosti a AutomationProperties.PositionInSet. Vývojář může k nastavení hodnot použít XAML:

    <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>
    
  • Přepsáním virtuálních metod AutomationPeer.

    Do GetSizeOfSetCore() třídy byly přidány AutomationPeer virtuální GetPositionInSetCore() metody. Vývojář může poskytnout hodnoty pro SizeOfSet tyto metody a PositionInSet přepsáním těchto metod, jak je znázorněno v následujícím příkladu:

    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();
      }
    }
    

Položky v ItemsControl instancích navíc poskytují hodnotu těchto vlastností automaticky bez další akce od vývojáře. ItemsControl Pokud je skupina seskupována, je kolekce skupin reprezentována jako sada a každá skupina se počítá jako samostatná sada, přičemž každá položka uvnitř této skupiny poskytuje její pozici uvnitř této skupiny a také velikost skupiny. Na automatické hodnoty nemá virtualizace vliv. I v případě, že položka není dosažena, je stále počítána do celkové velikosti sady a ovlivňuje pozici v sadě jejích položek na stejné straně.

Automatické hodnoty jsou poskytovány pouze v případě, že aplikace cílí na rozhraní .NET Framework 4.8. U aplikací, které cílí na starší verzi rozhraní .NET Framework, můžete nastavit Switch.UseLegacyAccessibilityFeatures.3přepínač AppContext, jak je znázorněno v následujícím souboru App.config:

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

Návrhář pracovních postupů Windows Workflow Foundation (WF)

Návrhář pracovního postupu obsahuje následující změny v rozhraní .NET Framework 4.8:

  • Uživatelé používající Předčítání uvidí vylepšení v popiscích případu FlowSwitch.

  • Uživatelé používající Předčítání uvidí vylepšení v popisech tlačítek.

  • Uživatelé, kteří zvolí motivy s vysokým kontrastem, uvidí vylepšení viditelnosti Návrháře pracovního postupu a jeho ovládacích prvků, jako jsou lepší kontrastní poměry mezi prvky a znatelnými poli výběru používanými pro prvky fokusu.

Pokud vaše aplikace cílí na rozhraní .NET Framework 4.7.2 nebo starší verzi, můžete se k těmto změnám přihlásit nastavením Switch.UseLegacyAccessibilityFeatures.3přepínače AppContext v false konfiguračním souboru aplikace. Další informace najdete v části Využití výhod vylepšení přístupnosti v tomto článku.

Novinky v přístupnosti v rozhraní .NET Framework 4.7.2

.NET Framework 4.7.2 obsahuje nové funkce přístupnosti v následujících oblastech:

Windows Forms

Barvy definované operačním systémem v motivech s vysokým kontrastem

Počínaje rozhraním .NET Framework 4.7.2 model Windows Forms používá barvy definované operačním systémem v motivech s vysokým kontrastem. To má vliv na následující ovládací prvky:

Vylepšení Předčítání

Počínaje rozhraním .NET Framework 4.7.2 se podpora Předčítání vylepšuje následujícím způsobem:

  • Oznamuje hodnotu ToolStripMenuItem.ShortcutKeys vlastnosti při oznámení textu objektu ToolStripMenuItem.

  • Označuje, kdy ToolStripMenuItemEnabled vlastnost nastavena na false.

  • Poskytuje zpětnou vazbu o stavu zaškrtávacího políčka, když je vlastnost nastavena ListView.CheckBoxes na truehodnotu .

  • Pořadí fokusu v režimu procházení předčítání je konzistentní s vizuálním pořadím ovládacích prvků v dialogovém okně pro stažení ClickOnce.

Vylepšení DataGridView

Počínaje rozhraním .NET Framework 4.7.2 zavedl ovládací DataGridView prvek následující vylepšení přístupnosti:

Vylepšené vizuální pomůcky

  • CheckBox Ovládací RadioButton prvky s prázdnou Text vlastností zobrazí indikátor fokusu, když dostanou fokus.

Vylepšená podpora mřížky vlastností

  • Podřízené PropertyGrid elementy ovládacího prvku nyní vrací true pro IsReadOnlyProperty vlastnost pouze v případě, že PropertyGrid element je povolen.

  • Podřízené PropertyGrid prvky ovládacího prvku vrací false pro IsEnabledProperty vlastnost pouze v případě, že PropertyGrid element lze změnit uživatelem.

Vylepšená navigace pomocí klávesnice

Windows Presentation Foundation (WPF)

Změny ovládacích prvků CheckBox a RadioButton

V rozhraní .NET Framework 4.7.1 a starších verzích mají wpF System.Windows.Controls.CheckBox a System.Windows.Controls.RadioButton ovládací prvky nekonzistentní a v klasických a vysoce kontrastních motivech nesprávné vizuály fokusu. K těmto problémům dochází v případech, kdy ovládací prvky nemají nastavenou žádnou sadu obsahu. Díky tomu může být přechod mezi motivy matoucí a vizuál fokusu obtížně vidět.

V rozhraní .NET Framework 4.7.2 jsou teď tyto vizuály konzistentnější napříč motivy a snadněji viditelné v klasických a vysoce kontrastních motivech.

Ovládací prvky WinForms hostované v aplikaci WPF

U ovládacího prvku WinForms hostovaného v aplikaci WPF v rozhraní .NET Framework 4.7.1 a starších verzích se uživatelům nepodařilo vysunutí z vrstvy WinForms v případě, že první nebo poslední ovládací prvek v této vrstvě je ovládací prvek WPF ElementHost . V rozhraní .NET Framework 4.7.2 teď uživatelé můžou tabulátorovat z vrstvy WinForms.

Automatizované aplikace, které se spoléhají na zaměření, však nemusí vrstvu WinForms fungovat podle očekávání.

Novinky v přístupnosti v rozhraní .NET Framework 4.7.1

.NET Framework 4.7.1 obsahuje nové funkce přístupnosti v následujících oblastech:

Windows Presentation Foundation (WPF)

Vylepšení čtečky obrazovky

Pokud jsou povolená vylepšení přístupnosti, rozhraní .NET Framework 4.7.1 obsahuje následující vylepšení, která ovlivňují čtečky obrazovky:

  • V rozhraní .NET Framework 4.7 a starších verzích Expander čtečky obrazovky oznamovaly ovládací prvky jako tlačítka. Počínaje rozhraním .NET Framework 4.7.1 jsou správně oznámeny jako rozbalitelné nebo sbalitelné skupiny.

  • V rozhraní .NET Framework 4.7 a starších verzích DataGridCell čtečky obrazovky oznamovaly ovládací prvky jako vlastní. Počínaje rozhraním .NET Framework 4.7.1 jsou nyní správně oznámeny jako buňka datové mřížky (lokalizovaná).

  • Počínaje rozhraním .NET Framework 4.7.1 čtečky obrazovky oznámí název upravitelného ComboBoxsouboru .

  • V rozhraní .NET Framework 4.7 a starších verzích PasswordBox byly ovládací prvky oznámeny jako "žádná položka v zobrazení" nebo jinak nesprávné chování. Tento problém je opravený od rozhraní .NET Framework 4.7.1.

Podpora uiAutomation LiveRegion

Čtečky obrazovky, jako je Předčítání, pomáhají uživatelům číst obsah uživatelského rozhraní aplikace, obvykle výstupem textového na řeč obsahu uživatelského rozhraní, který má fokus. Pokud se ale prvek uživatelského rozhraní změní a fokus nemá, nemusí být uživatel upozorněn a může chybět důležité informace. Živé oblasti se zaměřují na řešení tohoto problému. Vývojář je může použít k informování čtečky obrazovky nebo jakéhokoli jiného klienta UIAutomation, že došlo k důležité změně prvku uživatelského rozhraní. Čtečka obrazovky pak může rozhodnout, jak a kdy uživatele o této změně informovat.

Pro podporu živých oblastí byly do WPF přidána následující rozhraní API:

LiveRegion můžete vytvořit nastavením AutomationProperties.LiveSetting vlastnost elementu zájmu, jak je znázorněno v následujícím příkladu:

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

Když se data v živé oblasti změní a potřebujete informovat čtečku obrazovky, explicitně vyvoláte událost, jak je znázorněno v následující ukázce.

var peer = FrameworkElementAutomationPeer.FromElement(myTextBlock);

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

Vysoký kontrast

Počínaje rozhraním .NET Framework 4.7.1 byla vylepšení vysokého kontrastu provedena u různých ovládacích prvků WPF. Teď jsou viditelné, když HighContrast je motiv nastavený. Tady jsou některé z nich:

  • Ovládací prvek Expander

    Vizuál fokusu Expander pro ovládací prvek je teď viditelný. Vizuály klávesnice pro ComboBoxListBoxRadioButton a ovládací prvky jsou viditelné také. Příklad:

    Před:

    Screenshot of the expander control with focus and no focus visual.

    Po:

    Screenshot of the expander control with focus showing a dotted line around the control's text.

  • CheckBox a RadioButton ovládací prvky

    Text v ovládacích CheckBoxRadioButton prvcích je teď přehlednější, když je vybraný v motivech s vysokým kontrastem. Příklad:

    Před:

    Screenshot of radio and check buttons with poor text visibility on high contrast themes.

    Po:

    Screenshot of radio and check buttons with better text visibility on high contrast themes.

  • Ovládací prvek ComboBox

    Počínaje rozhraním .NET Framework 4.7.1 je ohraničení zakázaného ovládacího prvku stejná barva jako zakázaný ComboBox text. Příklad:

    Před:

    Screenshot of a disabled ComboBox with border and control text in different colors.

    Po:

    Screenshot of a disabled ComboBox with border the same color as the control text.

    Zakázaná a prioritní tlačítka navíc používají správnou barvu motivu.

    Před:

    Screenshot of a black button with gray text saying Focus Me.

    Po:

    Screenshot of a blue button with black text saying Focus Me.

    Nakonec v rozhraní .NET Framework 4.7 a starších verzích nastavujte ComboBox styl ovládacího prvku tak, aby Toolbar.ComboBoxStyleKey šipka rozevíracího seznamu byla neviditelná. Tento problém je opravený od rozhraní .NET Framework 4.7.1. Příklad:

    Před:

    Screenshot of a ComboBox control with an invisible drop-down arrow.

    Po:

    Screenshot of a ComBoxBox control displaying the drop-down arrow.

  • Ovládací prvek DataGrid

    Počínaje rozhraním .NET Framework 4.7.1 teď šipka indikátoru řazení v DataGrid ovládacích prvcích používá správné barvy motivu. Příklad:

    Před:

    Screenshot of sort indicator arrow before improvements.

    Po:

    Screenshot of sort indicator arrow after improvements.

    Kromě toho v rozhraní .NET Framework 4.7 a starších verzích se výchozí styl odkazu změnil na nesprávnou barvu myši v režimech vysokého kontrastu. Tento problém je vyřešen od rozhraní .NET Framework 4.7.1. DataGrid Podobně sloupce zaškrtávacích políček používají očekávané barvy pro zpětnou vazbu fokusu klávesnice počínaje rozhraním .NET Framework 4.7.1.

    Před:

    Screenshot of a link saying Click Me! in red.

    Po:

    Screenshot of a link saying Click Me! in yellow.

Další informace o vylepšení přístupnosti WPF v rozhraní .NET Framework 4.7.1 naleznete v tématu Vylepšení přístupnosti wpF.

vylepšení přístupnosti model Windows Forms

V rozhraní .NET Framework 4.7.1 model Windows Forms (WinForms) zahrnuje změny přístupnosti v následujících oblastech.

Vylepšené zobrazení v režimu Vysoký kontrast

Počínaje rozhraním .NET Framework 4.7.1 nabízejí různé ovládací prvky WinForms vylepšené vykreslování v režimech HighContrast dostupných v operačním systému. Systém Windows 10 změnil hodnoty některých barev systému s vysokým kontrastem a model Windows Forms je založená na rozhraní Systému Windows 10 Win32. Nejlepších výsledků dosáhnete tak, že spustíte nejnovější verzi Windows a přihlásíte se k nejnovějším změnám operačního systému tak, že do testovací aplikace přidáte soubor app.manifest a odkomentujte řádek podporovaného operačního systému Windows 10, aby vypadal takto:

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

Mezi příklady změn s vysokým kontrastem patří:

  • Zaškrtnutí položek MenuStrip je snazší zobrazit.

  • Když je tato možnost vybraná, zakázané MenuStrip položky se snadněji zobrazí.

  • Text ve vybraném Button ovládacím prvku kontrastuje s barvou výběru.

  • Zakázaný text je čitelnější. Příklad:

    Před:

    Screenshot of an app that uses different controls running in high contrast mode before accessibility improvements.

    Po:

    Screenshot of an app that uses different controls running in high contrast mode after accessibility improvements.

  • Vylepšení vysokého kontrastu v dialogovém okně Výjimky vlákna

Vylepšená podpora Předčítání

model Windows Forms v rozhraní .NET Framework 4.7.1 obsahuje následující vylepšení přístupnosti pro Předčítání:

  • Ovládací MonthCalendar prvek může získat přístup programem Předčítání a dalšími nástroji pro automatizaci uživatelského rozhraní.

  • Ovládací CheckedListBox prvek upozorní Program Předčítání, když se změnil stav kontroly položky, aby byl uživatel upozorněn, že změnil hodnotu položky seznamu.

  • Ovládací DataGridViewCell prvek hlásí do Programu Předčítání správný stav jen pro čtení.

  • Program Předčítání teď může číst zakázaný ToolStripMenuItem text, zatímco dříve přeskočí zakázané položky nabídky.

Vylepšená podpora vzorů přístupnosti UIAutomation

Počínaje rozhraním .NET Framework 4.7.1 můžou vývojáři technologických nástrojů pro usnadnění přístupu využívat běžné vzory a vlastnosti rozhraní API pro několik ovládacích prvků WinForms. Mezi tato vylepšení přístupnosti patří:

Vylepšené prostředí prohlížeče vlastností

Počínaje rozhraním .NET Framework 4.7.1 model Windows Forms zahrnuje:

  • Lepší navigace pomocí klávesnice v různých oknech rozevíracího seznamu
  • Snížení nepotřebných zarážek tabulátoru.
  • Lepší generování sestav typů ovládacích prvků
  • Vylepšené chování předčítání

webové ovládací prvky ASP.NET

Počínaje rozhraním .NET Framework 4.7.1 a sadou Visual Studio 2017 verze 15.3 ASP.NET zlepšuje způsob fungování webových ovládacích prvků ASP.NET s technologií přístupnosti v sadě Visual Studio. Mezi změny patří:

  • Změny implementace chybějících vzorů přístupnosti uživatelského rozhraní v ovládacích prvcích, jako je dialogové okno Přidat pole v průvodci zobrazení podrobností nebo dialogové okno Konfigurovat ListView průvodce ListView.

  • Změny pro zlepšení zobrazení v režimu Vysoký kontrast, jako je editor polí stránkování dat.

  • Změny, které zlepšují možnosti navigace pomocí klávesnice pro ovládací prvky, jako je dialogové okno Pole v Průvodci úpravou polí Pager ovládacího prvku DataPager, dialogové okno Konfigurovat objektContext nebo dialogové okno Konfigurovat výběr dat v průvodci Konfigurovat zdroj dat.

Nástroje sady .NET SDK

Nástroj editoru konfigurace (SvcConfigEditor.exe) a Nástroj pro sledování trasování služeb (SvcTraceViewer.exe) byly vylepšeny opravou různých problémů s přístupností. Většina z těchto problémů byla malá, například název, který se nedefinoval, nebo se správně neimplementovaly určité vzory automatizace uživatelského rozhraní. I když mnoho uživatelů nebude o těchto nesprávných hodnotách vědět, zákazníci, kteří používají technologie usnadnění, jako jsou čtečky obrazovky, najdou tyto nástroje sady SDK přístupnější.

Tato vylepšení mění některá předchozí chování, například pořadí fokusu klávesnice.

Návrhář pracovních postupů Windows Workflow Foundation (WF)

Změny přístupnosti v Návrháři pracovního postupu zahrnují následující:

  • Pořadí ovládacích prvků se změní zleva doprava a shora dolů v některých ovládacích prvcích:

  • Další funkce jsou k dispozici prostřednictvím klávesnice:

    • Při úpravách vlastností aktivity je možné skupiny vlastností sbalit pomocí klávesnice při prvním zaměření.

    • Ikony upozornění jsou přístupné pomocí klávesnice.

    • Tlačítko Další vlastnosti v okně Vlastnosti je přístupné pomocí klávesnice.

    • Uživatelé klávesnice mají přístup k položkám záhlaví v podoknech Argumenty a proměnné návrháře pracovního postupu.

  • Lepší viditelnost položek s fokusem, například v těchto případech:

    • Přidání řádků do datových mřížek používaných návrhářem pracovního postupu a návrháři aktivit

    • Tabbing through fields in the ReceiveReply and SendReply activities.

    • Nastavení výchozích hodnot pro proměnné nebo argumenty

  • Čtečky obrazovky teď můžou správně rozpoznat:

    • Zarážky nastavené v návrháři pracovního postupu

    • The FlowSwitch<T>, FlowDecisiona CorrelationScope activities.

    • Receive Obsah aktivity.

    • Typ cíle pro InvokeMethod aktivitu.

    • Pole se seznamem Výjimka a část Finally v aktivitě TryCatch .

    • Pole se seznamem Typ zprávy, rozdělovač v okně Přidat inicializátory korelace, okno Definice obsahu a okno CorrelationsOn Definition v aktivitách zasílání zpráv (Receive, Send, SendReplya ReceiveReply).

    • Přechody a cíle přechodů stavových počítačů

    • Poznámky a konektory k FlowDecision aktivitám

    • Kontextové nabídky (po kliknutí pravým tlačítkem myši) pro aktivity

    • Editory hodnot vlastností, tlačítko Vymazat hledání, tlačítka Podle kategorie a abecedního řazení a dialogové okno Editor výrazů v mřížce vlastností.

    • Procento přiblížení v Návrháři pracovního postupu

    • Oddělovač aktivit Parallel a Pick aktivit.

    • Aktivita InvokeDelegate .

    • Okno Vybrat typy pro aktivity slovníku (Microsoft.Activities.AddToDictionary<TKey,TValue>Microsoft.Activities.RemoveFromDictionary<TKey,TValue>atd.).

    • Okno Procházet a vybrat typ rozhraní .NET.

    • Popis cesty v Návrháři pracovního postupu

  • Uživatelé, kteří zvolí motivy s vysokým kontrastem, uvidí mnoho vylepšení viditelnosti Návrháře pracovního postupu a jeho ovládacích prvků, například lepší kontrastní poměry mezi prvky a znatelnými poli výběru používanými pro prvky fokusu.

Viz také