Directives d'accessibilité

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Accessibilité est la pratique de la conception de produits et de services utilisables par les personnes handicapées. Des statistiques récentes indiquent que plus de 26 % des personnes ont un type de handicap, donc rendre votre jeu Roblox accessible peut vous aider à atteindre un public plus large.

Taille du texte

Les joueurs peuvent avoir des difficultés à lire un texte petit. Comparez le menu de la boutique en jeu suivant avec un flou appliqué, simulant ce que cela pourrait ressembler pour quelqu'un ayant une vision altérée.

Exemple de petit texte sur l'interface utilisateur

Si vous augmentez la taille des petites étiquettes de police, cela sera plus clair pour la plupart des joueurs.

Exemple de texte plus grand sur l'interface utilisateur

Contraste des couleurs

Les joueurs peuvent trouver difficile de lire du texte clair sur un fond clair, ou du texte sombre sur un fond sombre. Pour améliorer l'accessibilité, il est recommandé de choisir des couleurs de texte et de fond avec un contraste de couleur suffisant.

Exemple d'éléments d'interface utilisateur avec un contraste élevé
Exemple d'éléments d'interface utilisateur avec un contraste faible

Non-dépendance à la couleur

Plus de 5 % des personnes dans le monde ont une forme de daltonisme. Bien qu'il soit rare que quelqu'un voie uniquement en noir et blanc, imaginez voir un jeu en niveaux de gris :

Exemple d'interface utilisateur montrée en couleur complète

En modifiant l'image pour utiliser différents symboles aux côtés des couleurs, plus de joueurs peuvent faire la différence dans le gameplay et dans d'autres contextes :

Exemple d'interface utilisateur montrée en couleur complète

Non-dépendance au son

Le son est un excellent ajout pour les jeux immersifs, mais les joueurs malentendants ou ceux qui coupent le son seront confus par les événements en jeu qui sont uniquement transmis par le son.

Considérez la scène suivante où un téléphone qui sonne est signalé uniquement par le son, puis signalé avec à la fois le son et des aides visuelles.

Préférences des joueurs

Divers paramètres visuels sont disponibles pour les joueurs dans les menus Paramètres Roblox et en jeu, y compris transparence préférée, taille de texte préférée et réduction de mouvement. Pour une accessibilité optimale, votre interface utilisateur devrait accommoder chacune.

Transparence préférée

Le paramètre Transparence de fond correspond à la propriété GuiService.PreferredTransparency. Une valeur de 1 indique que le joueur préfère la transparence de fond par défaut, tandis qu'une valeur de 0 indique que le joueur préfère une transparence de fond complètement opaque (non transparente) pour une meilleure lisibilité et contraste.

Multiplier BackgroundTransparency d'un élément UI par PreferredTransparency est le moyen recommandé d'utiliser ce paramètre ; les arrière-plans deviendront plus opaques à mesure que PreferredTransparency approche de 0.

  1. En utilisant le système de tagging, appliquez une étiquette TransparentBack à tous les éléments UI avec BackgroundTransparency tels que TextLabels ou Frames.

    Quatre éléments TextLabel avec différents niveaux de BackgroundTransparency
    Quatre éléments TextLabel avec différents niveaux de BackgroundTransparency
  2. Collez le code suivant dans un LocalScript dans StarterPlayerScripts.

    Ajustement dynamique pour la transparence préférée

    local GuiService = game:GetService("GuiService")
    local CollectionService = game:GetService("CollectionService")
    local TAG = "TransparentBack"
    local transparentBackObjects = {}
    local function onInstanceAdded(object)
    if object.BackgroundTransparency then
    local defaultTransparency = object.BackgroundTransparency
    transparentBackObjects[object] = defaultTransparency
    object.BackgroundTransparency = defaultTransparency * GuiService.PreferredTransparency
    end
    end
    local function onInstanceRemoved(object)
    transparentBackObjects[object] = nil
    end
    -- Stocker les instances initiales taguées
    for _, object in CollectionService:GetTagged(TAG) do
    onInstanceAdded(object)
    end
    -- Détecter quand une instance taguée est ajoutée ou supprimée
    CollectionService:GetInstanceAddedSignal(TAG):Connect(onInstanceAdded)
    CollectionService:GetInstanceRemovedSignal(TAG):Connect(onInstanceRemoved)
    -- Lorsque le paramètre en jeu est modifié, ajustez les instances taguées
    GuiService:GetPropertyChangedSignal("PreferredTransparency"):Connect(function()
    for object, defaultTransparency in transparentBackObjects do
    object.BackgroundTransparency = defaultTransparency * GuiService.PreferredTransparency
    end
    end)
  3. Testez le jeu, ouvrez le menu Paramètres et ajustez la Transparence de fond. Les éléments UI tagués devraient se mettre à jour entre leur BackgroundTransparency par défaut et complètement opaque.

Taille de texte préférée

Le paramètre Taille de texte correspond à la propriété GuiService.PreferredTextSize qui par défaut est Medium. Les joueurs peuvent choisir d'augmenter la taille du texte via le pipeline de rendu de police du moteur à Large, Larger ou Largest.

Lorsqu'ils travaillent avec des éléments UI, notez les comportements suivants :

Réduction du mouvement

Le commutateur Réduire le mouvement correspond à la propriété GuiService.ReducedMotionEnabled. Une valeur de true indique que le joueur souhaite que les effets de mouvement à travers les animations/tweens de l'UI soient réduits ou complètement supprimés.

Une approche simple pour supprimer le mouvement des tweens UI est de fixer le paramètre Time d'un TweenInfo à 0 lorsque ReducedMotionEnabled est true, rendant effectivement l'objet UI à sa cible instantanément.

UI Tween Snap-to-Target pour Réduction de Mouvement

local GuiService = game:GetService("GuiService")
local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local player = Players.LocalPlayer
local playerGui = player.PlayerGui
local menuUI = playerGui:WaitForChild("MenuUI")
-- Utiliser un temps de tween de 0.75 secondes à moins que le mouvement réduit soit activé
local TWEEN_TIME = if GuiService.ReducedMotionEnabled then 0 else 0.75
local tweenInfo = TweenInfo.new(TWEEN_TIME, Enum.EasingStyle.Cubic, Enum.EasingDirection.Out)
local tween = TweenService:Create(menuUI.SettingsFrame, tweenInfo, {Position = UDim2.fromScale(0.5, 0.5)})
tween:Play()

Alternativement au snap instantané, vous pouvez gérer ReducedMotionEnabled avec une logique distincte true/false. Par exemple, le LocalScript suivant utilise le tweening de mouvement par défaut, mais passe à un fondu pour les joueurs qui activent la réduction du mouvement, résultant en une transition plus élégante sans mouvement de position.

Fallback to Fade Tween for Reduced Motion

local GuiService = game:GetService("GuiService")
local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local player = Players.LocalPlayer
local playerGui = player.PlayerGui
local menuUI = playerGui:WaitForChild("MenuUI")
-- Créer un groupe de toile pour tweener tous les enfants uniformément
local canvasGroup = Instance.new("CanvasGroup")
canvasGroup.Size = UDim2.fromScale(1, 1)
canvasGroup.BackgroundTransparency = 1
canvasGroup.Parent = menuUI
-- Ajouter des enfants au groupe de toile
menuUI.SettingsFrame.Parent = canvasGroup
local tweenInfo = TweenInfo.new(0.75, Enum.EasingStyle.Cubic, Enum.EasingDirection.Out)
local tween
-- Utiliser le tween de fondu pour le mouvement réduit, ou un tween de mouvement autrement
if GuiService.ReducedMotionEnabled then
-- Initialement définir le groupe de toile à complètement transparent (invisible)
canvasGroup.GroupTransparency = 1
-- Fondu en groupes de toile
tween = TweenService:Create(canvasGroup, tweenInfo, {GroupTransparency = 0})
else
-- Initialement définir le groupe de toile hors écran
canvasGroup.Position = UDim2.fromScale(0, -1)
-- Déplacer le groupe de toile sur l'écran
tween = TweenService:Create(canvasGroup, tweenInfo, {Position = UDim2.fromScale(0, 0)})
end
tween:Play()

Contrôles de volume

Différents sons jouant en même temps peuvent être accablants, distrayants ou difficiles à distinguer. Fournir aux utilisateurs des commandes de volume pour différents "groupes" audio tels que les effets sonores, la musique et la parole leur permet de personnaliser leur jeu et de se concentrer sur ce dont ils ont besoin.

Considérez l'exemple suivant d'un jeu très bruyant où l'utilisateur peut modifier séparément le volume de la musique et des effets sonores.

©2026 Société Roblox. Roblox, le logo Roblox et Powering Imagination font partie de nos marques déposées aux États-Unis et dans d'autres pays.