Package d'accessibilité FireMonkey

De Appmethod Topics
Aller à : navigation, rechercher

Remonter à FireMonkey


La prise en charge de l'accessibilité dans FireMonkey est disponible pour les applications Object Pascal 1.17 pour Win32, Win64 et Mac OS X. Le package d'accessibilité FireMonkey est disponible en téléchargement sur http://appmethod.com (vous devez d'abord vous connecter à votre compte utilisateur).

Le package d'accessibilité FireMonkey supporte :

  • Le lecteur d'écran JAWS de Freedom Scientific sur Windows
  • Le lecteur d'écran VoiceOver d'Apple sur Mac OS X

Technologie

La prise en charge de l'accessibilité dans FireMonkey est basée sur l'interface Microsoft MSAA sous Windows (architecture Microsoft Active Accessibility). Sous Mac OS X, elle est basée sur le protocole d'accessibilité OS X.

Les informations sur les API sont disponibles à l'adresse :

L'implémentation MSAA Windows a été testée avec Freedom Scientific JAWS et Microsoft Windows Narrator. Sous Mac OS X, elle a été testée sur les applications VoiceOver Apple.

Architecture

Pour implémenter les interfaces d'accessibilité du système d'exploitation, une nouvelle classe de fiche est dérivée de la classe TForm par défaut de FireMonkey. Cette classe de fiche TAccForm a une implémentation séparée pour la plate-forme cible Windows qui implémente l'interface MSAA Windows et gère les interactions de tous les contrôles MSAA et FireMonkey placés sur la fiche. Une implémentation équivalente est aussi disponible pour OS X.

Cette classe TAccForm dispose d'une gestion intégrée de la plupart des contrôles FireMonkey communs et standard. Cela signifie qu'outre le fait de dériver des fiches de TAccForm plutôt que de TForm, vous n'avez pas besoin d'accomplir des étapes supplémentaires pour activer l'accessibilité dans les applications FireMonkey.

Introduction

Pour activer l'accessibilité dans une fiche multi-périphérique, commencez par ajouter les unités requises implémentant cette fonctionnalité. L'accessibilité est fournie dans trois unités :

  • FMX.ScreenReader
  • FMX.ScreenReader.Mac
  • FMX.ScreenReader.Win.

La liste uses prend la forme suivante :

uses
  System.SysUtils, System.Types, System.UITypes, System.Rtti,
  System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms,
  FMX.Dialogs, FMX.StdCtrls, FMX.ScreenReader
  {$IFDEF MACOS}
  , FMX.ScreenReader.Mac
  {$ELSE}
  , FMX.ScreenReader.Win
  {$ENDIF}
  ;

L'étape suivante consiste à faire dériver la fiche de TAccForm plutôt que de TForm :

type
  TForm1 = class(TAccForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

Contrôles pris en charge

L'implémentation de l'accessibilité dans FireMonkey offre une prise en charge intégrée des contrôles standard FireMonkey suivants :

Contrôle FireMonkey   Classe d'accessibilité  

TButton

PUSHBUTTON

TSpeedButton

PUSHBUTTON

TTracker

SLIDER

TEdit

TEXT

TListBox

LIST

TComboBox

COMBOBOX

TComboEdit

COMBOBOX

TSpinBox

SPINBUTTON

TLabel

STATICTEXT

TCheckBox

CHECKBUTTON

TRadioButton

RADIOBUTTON

TMainMenu

MENU

TMemo

TEXT

TTreeView

OUTLINE ITEM

TCustomGrid

CELL

Lorsque vous utilisez l'un quelconque de ces contrôles dans votre application FireMonkey, vous n'avez pas à entreprendre d'étape supplémentaire. TAccForm laissera le logiciel de lecture d'écran utilisé lire le texte ou l'état du contrôle. Notez que tous les contrôles descendant de ces contrôles standard FireMonkey héritent automatiquement de la prise en charge de l'accessibilité.

Ajout de la prise en charge de l'accessibilité aux contrôles FireMonkey personnalisés

Pour ajouter la prise en charge d'accessibilité pour un contrôle personnalisé, ajoutez l'interface IFMXAccessibility à votre contrôle et procédez à son implémentation.

IFMXAccessibility est défini comme suit :

 // Interface for custom controls to add accessibility support
 IFMXAccessibility = interface
 ['{49AF90E5-341A-4869-9D3E-F659670FB4D8}']
   // Return the text to read by the accessibility interface
   function GetControlText: string;
   // Returns the accesibility role of the custom control
   function GetRole: TFMXRole;
 end;


Cette interface est composée de deux méthodes simples :

  • GetRole : renvoie le rôle du contrôle personnalisé
  • GetControlText : renvoie le texte que le lecteur d'écran devra restituer vocalement lorsque le contrôle aura la focalisation.

Le type TFMXRole est défini comme suit :

 TFMXRole = (rStaticText, rCell, rText, rButton, rCheckBox, rRadioButton, rGrid, rList, rSlider, rComboBox, rTabGroup);

Pour un contrôle d'édition personnalisé (qui ne descend pas d'un contrôle d'édition FireMonkey standard doté de la prise en charge d'accessibilité), l'implémentation peut s'effectuer sous la forme :

type

  TMyOwnFireMonkeyEdit = class(TControl, IFMXAccessibility)
  protected
    function GetControlText: string;
    function GetRole: TFMXRole;
  end;



implementation

{ TMyOwnFireMonkeyEdit }

function TMyOwnFireMonkeyEdit.GetControlText: string;
begin
  Result := GetMyControlText,
end;

function TMyOwnFireMonkeyEdit.GetRole: TFMXRole;
begin
  Result := rText;
end;

Voir aussi