Udostępnij za pośrednictwem


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.