VoiceOver уже читает в порядке DOM. Если у вас есть aria-live
для элемента и вы обновляете этот элемент, вы говорите VoiceOver прочитать содержимое этого элемента. В этом весь смысл aria-live
.
Я предполагаю, что под «ползунком» вы подразумеваете нечто вроде карусели, а не что-то вроде:
Когда карусель вращается в новом контенте, в зависимости от того, как он реализован , это может быть обновление DOM и запуск aria-live
. Тем не менее, большинство каруселей уже имеют все элементы и просто скрывают / скрывают их при просмотре. Отображение элемента не вызывает запуска области aria-live
.
Если у вас есть карусель, которая вращает контент автоматически, вам понадобится кнопка паузы, чтобы остановить карусель, иначе вы нарушите WCAG 2.2.2 Пауза, Стоп, Скрыть
Я полагаю, что можно заставить это работать с помощью поля Template и разметки scriptlet...
<asp:TemplateField>
<ItemTemplate>
<asp:Label Id="lblSubclassVal" runat="server" Text="<%# DataBinder.Eval(Container.DataItem, "SubClass.PropertyName")%>"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
Механизм привязки данных позади ASP.NET GridView поддерживает только одну привязку уровня. (в противоположность его WinForms Обязательный дубликат, который поддерживает многоуровневый в случае привязки к DataSet / DataTable / DataView).
У Вас есть три возможных решения:
[Имя]. [Имя] синтаксис не поддерживается BoundField. Только простые имена свойства.
Mark,
Я на 99,9% уверен, что необходимо будет обработать это в codebehind на событии ItemDataBound для отдельной строки.
Помните, что можно получить целый объект databould от e. Объект. DataItem