Contrôles et accessibilité ASP.NET

Mise à jour : novembre 2007

ASP.NET vous permet de créer des pages Web conformes aux règles d'accessibilité. Pour plus d'informations, consultez Prise en charge de l'accessibilité dans ASP.NET.

Pour créer des applications Web accessibles dans ASP.NET, vous devez comprendre comment les contrôles serveur ASP.NET prennent en charge l'accessibilité. Dans de nombreux cas, vous devez configurer un contrôle pour créer un balisage qui se conforme aux règles d'accessibilité. Dans quelques cas, les contrôles serveur ASP.NET ne peuvent pas être utilisés dans les applications qui doivent être 100 % conformes avec les règles de priorité 1 des Web Content Accessibility Guidelines 1.0 (WCAG). Dans ces cas, vous devez éviter d'utiliser les contrôles.

Instructions relatives aux contrôles ASP.NET à des fins d'accessibilité

Le tableau suivant répertorie les contrôles serveur ASP.NET et fournit des informations à propos de la prise en charge d'accessibilité pour le contrôle. Si un contrôle n'est pas répertorié dans le tableau, sa sortie se conforme aux règles d'accessibilité sans configuration requise.

Contrôle

Prise en charge d'accessibilité

AppearanceEditorPart

Le contrôle ne génère pas d'éléments label pour associer des étiquettes à des contrôles.

Tous les verbes génèrent le même texte de lien.

Le texte de remplacement pour les liens est rendu, mais il ne peut pas être personnalisé.

Le fonctionnement du contrôle requiert un script client.

Le contrôle ne restitue pas de paramètres de touche d'accès rapide ou d'index de tabulation.

BehaviorEditorPart

Le contrôle ne génère pas d'éléments label pour associer des étiquettes à des contrôles.

Tous les verbes génèrent le même texte de lien.

Le texte de remplacement pour les liens est rendu, mais il ne peut pas être personnalisé.

Le fonctionnement du contrôle requiert un script client.

Le contrôle ne restitue pas de paramètres de touche d'accès rapide ou d'index de tabulation.

BulletedList

Si la propriété DisplayMode du contrôle a la valeur LinkButton, le contrôle requiert un script client pour fonctionner. Pour éviter la nécessité d'un script client, créez des modèles et ajoutez des contrôles Button pour ces fonctions.

Lorsque la propriété BulletStyle du contrôle a la valeur CustomImage, assurez-vous que le graphique ne communique pas une signification qui ne serait pas disponible aux utilisateurs qui ne peuvent pas consulter le graphique.

La définition de la propriété Target pour des liens ouvre une nouvelle fenêtre, ce qui n'est pas recommandé par les règles d'accessibilité.

Button

La définition de la propriété OnClientClick force le bouton à dépendre du script client.

Calendar

Le contrôle ne restitue pas de header dans les colonnes mais restitue des éléments th avec un scope pour le titre.

La disposition de contrôle est restituée à l'aide d'un tableau HTML, ce qui n'est pas recommandé par certaines instructions. Définissez les propriétés Caption et CaptionAlign du contrôle pour restituer une légende pour la table, tel que recommandé dans les règles d'accessibilité.

Le contrôle restitue des contrôles LinkButton pour la navigation qui requièrent un script client pour fonctionner. Pour éviter la nécessité d'un script client, créez des modèles et ajoutez des contrôles Button pour ces fonctions.

CatalogZone

Le contrôle ne génère pas d'éléments label pour associer des étiquettes à des contrôles.

Tous les verbes génèrent le même texte de lien.

Le texte de remplacement pour les liens est rendu, mais il ne peut pas être personnalisé.

Le fonctionnement du contrôle requiert un script client.

Le contrôle ne restitue pas de paramètres de touche d'accès rapide ou d'index de tabulation.

ChangePassword

Le fonctionnement du contrôle requiert un script client.

Si vous configurez le contrôle pour utiliser des images, affectez le texte de remplacement approprié à la propriété Text correspondante. Par exemple, si vous affectez Image à la propriété ChangePasswordButtonType, affectez le texte de remplacement à la propriété ChangePasswordButtonText.

CheckBox

L'affectation de la valeur true à la propriété AutoPostBack fait en sorte que le contrôle requière un script client.

CheckBoxList

L'affectation de la valeur true à la propriété AutoPostBack fait en sorte que le contrôle requière un script client.

CreateUserWizard

Si vous configurez le contrôle pour utiliser des images, affectez le texte de remplacement approprié à la propriété Text correspondante. Par exemple, si vous affectez Image à la propriété CancelButtonType, affectez le texte de remplacement à la propriété CancelButtonText.

Les boutons dans le contrôle, tel que le bouton Envoyer, et les liens à déplacer entre des étapes, requièrent un script client.

DataPager

Si la propriété QueryStringField n'est pas définie et vous utilisez des objets NumericPagerField ou NextPreviousPagerField, le contrôle DataPager nécessite le script client. Si les objets de champ de pagineur sont configurés pour utiliser des images, vous ne pouvez pas spécifier explicitement un texte de remplacement pour les images. Les images utilisent les propriétés Text (telles que NextPageText) comme texte de remplacement. Vous pouvez également utiliser l'objet TemplatePagerField pour pouvoir définir exactement les éléments affichés par le pagineur.

DetailsView

Si vous créez une colonne ButtonField et que vous spécifiez une image pour le bouton, vous ne pouvez pas spécifier explicitement le texte de remplacement pour l'image. L'image utilise la propriété Text de l'objet comme texte de remplacement.

La disposition des contrôles est restituée à l'aide d'un tableau HTML, ce qui n'est pas recommandé par certaines instructions parce qu'elle n'inclut pas d'informations d'en-tête de tableau.

Si vous activez la pagination et que vous définissez les propriétés NextPageImageUrl et PreviousPageImageUrl, vous ne pouvez pas définir explicitement le texte de remplacement pour les images utilisées comme boutons de pagination. À la place, utilisez la propriété PagerTemplate pour pouvoir définir exactement ce que le pagineur affiche.

Par défaut, ce contrôle utilise des contrôles LinkButton qui requièrent un script client pour les fonctions telles que le passage en mode édition, la pagination, etc. Pour éviter la nécessité d'un script client, créez des modèles et ajoutez des contrôles Button pour ces fonctions.

Les zones de texte générées automatiquement lorsque vous affectez true à la propriété AutoGenerateEditButton ne comportent pas d'éléments label associés. Pour éviter ceci, créez des champs de modèle, ajoutez vos propres contrôles Label et TextBox et associez-les manuellement. Définissez les propriétés Caption et CaptionAlign du contrôle pour restituer une légende pour la table, tel que recommandé dans les règles d'accessibilité.

DropDownList

Le contrôle ne prend pas en charge le ListItemGroup recommandé pour permettre à la liste d'être subdivisée en section.

L'affectation de la valeur true à la propriété AutoPostBack fait en sorte que le contrôle requière un script client.

EditorZone

Tous les verbes affichent le même texte de remplacement lorsque les icônes sont affichées.

Le fonctionnement du contrôle requiert un script client.

Le contrôle ne restitue pas de paramètres de touche d'accès rapide ou d'index de tabulation.

Le contrôle ne génère pas d'éléments label pour associer des étiquettes à des contrôles.

Le texte de remplacement pour les liens est rendu, mais il ne peut pas être personnalisé.

FormView

La disposition des contrôles est restituée à l'aide d'un tableau HTML, ce qui n'est pas recommandé par certaines instructions parce qu'elle n'inclut pas d'informations d'en-tête de tableau.

Par défaut, le contrôle utilise des contrôles LinkButton qui requièrent un script client pour les fonctions telles que le passage en mode édition, la pagination, etc. Pour éviter la nécessité d'un script client, utilisez la propriété PagerTemplate et ajoutez des contrôles Button pour ces fonctions.

Définissez les propriétés Caption et CaptionAlign du contrôle pour restituer une légende pour la table, tel que recommandé dans les règles d'accessibilité.

GridView

Affectez le nom d'un champ de données à la propriété RowHeaderColumn et true à la propriété UseAccessibleHeader pour que le contrôle restitue les informations d'en-tête de tableau qui satisfont les règles d'accessibilité.

Si vous créez un objet ButtonField et que vous spécifiez une image pour le bouton, vous ne pouvez pas spécifier explicitement le texte de remplacement pour l'image. L'image utilise la propriété Text de l'objet comme texte de remplacement.

Définissez les propriétés Caption et CaptionAlign du contrôle pour restituer une légende pour la table, tel que recommandé dans les règles d'accessibilité.

Par défaut, le contrôle utilise des contrôles LinkButton qui requièrent un script client pour les fonctions telles que le passage en mode édition, la pagination, etc. Pour éviter la nécessité d'un script client, créez des modèles et ajoutez des contrôles Button pour ces fonctions.

Si vous activez la pagination et que vous définissez les propriétés NextPageImageUrl et PreviousPageImageUrl, vous ne pouvez pas définir explicitement le texte de remplacement pour les images utilisées comme boutons de pagination. À la place, utilisez la propriété PagerTemplate pour pouvoir définir exactement ce que le pagineur affiche.

Les contrôles par défaut utilisés pour implémenter l'édition, la sélection, la pagination et d'autres fonctions de mise à jour requièrent un script client. Pour éviter cela, créez des colonnes de modèle et ajoutez des contrôles Button manuellement.

Les zones de texte générées automatiquement lorsque vous affectez true à la propriété AutoGenerateEditButton ne comportent pas d'éléments label associés. Pour éviter ceci, créez des colonnes de modèle, ajoutez vos propres contrôles Label et TextBox et associez-les manuellement.

Si vous activez le tri, les liens dans les en-têtes de colonne sont des contrôles LinkButton et requièrent un script client pour fonctionner. Pour éviter la nécessité d'un script client, créez des modèles et ajoutez des contrôles Button pour ces fonctions.

HyperLink

Si vous affectez l'URL d'un fichier graphique à la propriété ImageUrl, définissez la propriété Text pour spécifier le texte de remplacement pour le graphique résultant.

La définition de la propriété Target pour des liens ouvre une nouvelle fenêtre, ce qui n'est pas recommandé par les règles d'accessibilité.

Image

Par défaut, le contrôle ne restitue pas de texte de remplacement. Définissez la propriété AlternateText. Si le graphique n'a pas d'objectif fonctionnel, affectez true à la propriété GenerateEmptyAlternateText pour restituer un alt dont la valeur est une chaîne vide (""), ce qui force les lecteurs d'écran à ignorer le graphique.

ImageButton

Le fonctionnement du contrôle requiert un script client.

Par défaut, le contrôle ne restitue pas de texte de remplacement. Définissez la propriété AlternateText.

N'utilisez pas le contrôle ImageButton comme image interactive, parce qu'il ne prend pas en charge les régions qui ont leur propre texte de remplacement. Utilisez à la place le contrôle ImageMap.

ImageMap

Par défaut, le contrôle ne restitue pas de texte de remplacement. Définissez la propriété AlternateText.

Si vous affectez PostBack à la propriété HotSpotMode du contrôle ou des zones réactives, le contrôle requiert un script client pour fonctionner.

La définition de la propriété Target pour des liens ouvre une nouvelle fenêtre, ce qui n'est pas recommandé par les règles d'accessibilité.

Label

Pour utiliser le contrôle afin de restituer un label pour une zone de texte ou un autre contrôle, affectez l'ID du contrôle à associer à l'étiquette à la propriété AssociatedControlID.

LayoutEditorPart

Incluez toujours le contrôle LayoutEditorPart avec d'autres contrôles WebPart pour rendre une page accessible. Sinon, les utilisateurs ne peuvent utiliser qu'une souris pour faire glisser des contrôles WebPart.

Le contrôle ne génère pas d'éléments label pour associer des étiquettes à des contrôles.

Tous les verbes génèrent le même texte de lien.

Le texte de remplacement pour les liens est rendu, mais il ne peut pas être personnalisé.

Le fonctionnement du contrôle requiert un script client.

Le contrôle ne restitue pas de paramètres de touche d'accès rapide ou d'index de tabulation.

LinkButton

Le fonctionnement du contrôle requiert un script client.

N'affectez pas la même chaîne à la propriété Text de plusieurs contrôles LinkButton, parce que les utilisateurs qui font confiance aux lecteurs d'écran ne pourront pas distinguer les boutons.

ListBox

Le contrôle ne prend pas en charge le ListItemGroup recommandé pour permettre à la liste d'être subdivisée en section.

L'affectation de la valeur true à la propriété AutoPostBack fait en sorte que le contrôle requière un script client.

Login

Lorsque la propriété LoginButtonType a la valeur Image, la valeur de la propriété LoginButtonText est utilisée comme texte de remplacement.

Le contrôle ne restitue pas de paramètres de touche d'accès rapide ou d'index de tabulation.

LoginName

Affectez un texte tel que Connecté en tant que nom d'utilisateur à la propriété ToolTip afin que les lecteurs d'écran interprètent correctement le texte du contrôle.

LoginStatus

Le contrôle utilise un contrôle LinkButton pour afficher le lien Déconnexion et requiert par conséquent un script client pour fonctionner. Pour éviter la nécessité d'un script client, créez des modèles et ajoutez des contrôles Button pour ces fonctions.

Menu

Affectez une chaîne à la propriété SkipLinkText du contrôle pour que le contrôle restitue le lien de navigation ignoré recommandé.

Le fonctionnement du contrôle requiert un script client.

Dans les navigateurs qui ne prennent pas en charge l'ensemble des fonctionnalités côté client du contrôle, le navigateur actualisera la fenêtre pour afficher la navigation secondaire, ce qui peut forcer les lecteurs d'écran à recommencer la lecture de la page.

La définition de la propriété Target pour des liens ouvre une nouvelle fenêtre, ce qui n'est pas recommandé par les règles d'accessibilité.

La disposition de contrôle est restituée à l'aide d'un tableau HTML, ce qui n'est pas recommandé par certaines instructions.

La configuration du contrôle pour que le pointeur de la souris dispose d'effets secondaires (tel que la création de menus contextuels) n'est pas recommandée par les règles d'accessibilité.

PageCatalogPart

Le contrôle ne génère pas d'éléments label pour associer des étiquettes à des contrôles.

Tous les verbes génèrent le même texte de lien.

Le texte de remplacement pour les liens est rendu, mais il ne peut pas être personnalisé.

Le fonctionnement du contrôle requiert un script client.

Le contrôle ne restitue pas de paramètres de touche d'accès rapide ou d'index de tabulation.

PasswordRecovery

Si la propriété ClientTarget de la page a la valeur Downlevel, le contrôle requiert un script client pour fonctionner.

Lorsque la propriété SubmitButtonType a la valeur Image, la valeur de la propriété SubmitButtonText est utilisée comme texte de remplacement.

Le contrôle ne restitue pas de paramètres de touche d'accès rapide ou d'index de tabulation.

PropertyGridEditorPart

Le contrôle ne génère pas d'éléments label pour associer des étiquettes à des contrôles.

Tous les verbes génèrent le même texte de lien.

Le texte de remplacement pour les liens est rendu, mais il ne peut pas être personnalisé.

Le fonctionnement du contrôle requiert un script client.

Le contrôle ne restitue pas de paramètres de touche d'accès rapide ou d'index de tabulation.

RadioButton

L'affectation de la valeur true à la propriété AutoPostBack fait en sorte que le contrôle requière un script client.

RadioButtonList

L'affectation de la valeur true à la propriété AutoPostBack fait en sorte que le contrôle requière un script client.

SiteMapPath

Affectez une chaîne à la propriété SkipLinkText du contrôle pour que le contrôle restitue le lien de navigation ignoré recommandé.

Dans le fichier XML de plan de site, définissez l'attribut description de chaque nœud sitemap pour fournir un titre que les lecteurs d'écran peuvent utiliser pour identifier des liens de navigation.

Table, TableRow, TableCell, TableHeaderCell, TableHeaderRow et TableFooterRow

Définissez les propriétés Caption et CaptionAlign du contrôle pour restituer une légende pour la table, tel que recommandé dans les règles d'accessibilité.

Lors de la création d'un objet Table, incluez les contrôles TableHeaderRow et TableHeaderCell.

Dans les contrôles TableHeaderRow, Table et TableFooterRow, affectez TableBody, TableHeader ou TableFooter à la propriété TableSection. Cela force le contrôle à restituer respectivement les éléments thead, tbody et tfoot.

Dans les contrôles TableCell, définissez la propriété AssociatedHeaderCellID pour que le contrôle restitue un header qui associe la cellule à son en-tête.

Définissez la propriété Scope du contrôle pour associer l'en-tête à la colonne de données correspondante.

TextBox

L'affectation de la valeur true à la propriété AutoPostBack fait en sorte que le contrôle requière un script client.

TreeView

Affectez une chaîne à la propriété SkipLinkText du contrôle pour que le contrôle restitue le lien de navigation ignoré recommandé.

L'affectation de true à la propriété PopulateOnDemand d'un nœud force le contrôle à se comporter d'une façon qui n'est pas compatible avec les règles d'accessibilité.

Le fonctionnement du contrôle requiert un script client.

L'affectation de _blank à la propriété Target pour le contrôle TreeView ou pour les nœuds force le contrôle à ouvrir une nouvelle fenêtre, ce qui n'est pas recommandé par les règles d'accessibilité.

WebPartZone

Le contrôle ne génère pas d'éléments label pour associer des étiquettes à des contrôles.

Tous les verbes génèrent le même texte de lien.

Le texte de remplacement pour les liens est rendu, mais il ne peut pas être personnalisé.

Le fonctionnement du contrôle requiert un script client.

Le contrôle ne restitue pas de paramètres de touche d'accès rapide ou d'index de tabulation.

Si vous affectez Modal ou Modeless à la propriété HelpMode, le contrôle ouvre une nouvelle fenêtre, ce qui n'est pas recommandé par les règles d'accessibilité.

Wizard

Le contrôle restitue des contrôles LinkButton pour la navigation qui requièrent un script client pour fonctionner. Pour éviter la nécessité d'un script client, créez des modèles et ajoutez des contrôles Button pour ces fonctions.

Contrôles validateurs

Par défaut, les contrôles de validation restituent un script client pour effectuer la validation côté client. Toutefois, étant donné que les contrôles validateurs intégrés (à l'exception du contrôle CustomValidator) effectuent automatiquement un contrôle de validation redondant en code serveur, vous pouvez affecter false à la propriété EnableClientScript pour éviter de restituer le script client pour les contrôles de validation.

Attribuez des messages d'erreur significatifs aux propriétés Text et ErrorMessage. Ne leur affectez pas un astérisque (*).

Voir aussi

Concepts

Prise en charge de l'accessibilité dans ASP.NET