SemanticOrderView
Zapewnia SemanticOrderView
możliwość kontrolowania kolejności elementów VisualElements dla czytników zawartości ekranu i ulepszania ułatwień dostępu aplikacji. Może to być szczególnie przydatne w przypadku kompilowania interfejsów użytkownika w kolejności, w jakiej użytkownicy i czytniki zawartości ekranu będą nawigować po nich.
Korzystanie z kontrolki SemanticOrderView
W poniższym przykładzie pokazano, jak SemanticOrderView
można zmienić kolejność, w jakiej czytnik zawartości ekranu ogłasza elementy z dala od kolejności dodawania ich do interfejsu użytkownika. Poniższy kod XAML przedstawia TitleLabel
renderowanie tytułu poDescriptionLabel
renderowaniu opisu, co oznacza, że wizualnie zobaczymy opis przed tytułem. Chociaż może to mieć sens, gdy ktoś patrzy na to, niekoniecznie ma sens dla kogoś, kto jest niedowidzący i nie widzi ekranu (całkowicie).
<ContentPage
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
x:Class="CommunityToolkit.Maui.Sample.Pages.Views.SemanticOrderViewPage"
Title="Semantic Order View">
<ContentPage.Content>
<toolkit:SemanticOrderView x:Name="SemanticOrderView">
<Grid RowDefinitions="2*,*">
<Label x:Name="DescriptionLabel" Text="{Binding Description}" />
<Label x:Name="TitleLabel" Text="{Binding Title}" FontSize="30" />
</Grid>
</toolkit:SemanticOrderView>
</ContentPage.Content>
</ContentPage>
Aby to zrobić, w kodzie za plikiem możemy zmienić kolejność, która będzie używana przez czytnik zawartości ekranu urządzenia w następujący sposób:
using System.Collections.Generic;
namespace CommunityToolkit.Maui.Sample.Pages.Views;
public partial class SemanticOrderViewPage : ContentPage
{
public SemanticOrderViewPage()
{
InitializeComponent();
this.SemanticOrderView.ViewOrder = new List<View> { TitleLabel, DescriptionLabel };
}
}
Dzięki temu informujemy SemanticOrderView
, że "właściwa" kolejność dla tych kontrolek, w przypadku uzyskiwania dostępu za pośrednictwem oprogramowania czytnika zawartości ekranu, należy najpierw skoncentrować element TitleLabel
, a następnie DescriptionLabel
.
Przykłady
Przykład tej funkcji można znaleźć w aplikacji przykładowej zestawu narzędzi .NET MAUI Community Toolkit.
interfejs API
Kod źródłowy można SemanticOrderView
znaleźć w repozytorium GitHub zestawu narzędzi .NET MAUI Community Toolkit.
.NET MAUI Community Toolkit