Diretrizes de Acessibilidade

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

Acessibilidade é a prática de projetar produtos e serviços para serem utilizáveis por pessoas com deficiências. Estatísticas recentes indicam que mais de 26% das pessoas têm algum tipo de deficiência, então tornar seu jogo Roblox acessível pode ajudá-lo a atingir um público mais amplo.

Tamanho do texto

Os jogadores podem achar difícil ler textos pequenos. Compare o seguinte menu da loja do jogo com um desfoque aplicado, simulando como pode parecer para alguém com visão prejudicada.

Exemplo de texto pequeno na interface do usuário

Se você aumentar o tamanho dos rótulos de fonte menores, ficará mais claro para a maioria dos jogadores.

Exemplo de texto maior na interface do usuário

Contraste de cores

Os jogadores podem ter dificuldade em ler texto claro em um fundo claro ou texto escuro em um fundo escuro. Para melhorar a acessibilidade, é recomendado escolher cores de texto e fundo com contraste suficiente.

Exemplo de elementos da interface do usuário com alto contraste
Exemplo de elementos da interface do usuário com baixo contraste

Não dependência de cores

Mais de 5% das pessoas no mundo têm algum tipo de daltonismo. Embora seja raro alguém ver apenas em preto e branco, imagine visualizar um jogo em escala de cinza:

Exemplo da interface do usuário mostrada em cores completas

Modificando a imagem para usar diferentes símbolos ao lado das cores, mais jogadores podem notar a diferença no jogo e em outros contextos:

Exemplo da interface do usuário mostrada em cores completas

Não dependência de som

O som é uma excelente adição para jogos imersivos, mas jogadores com deficiência auditiva ou qualquer um que desliga seu volume pode ficar confuso com eventos do jogo que são apenas transmitidos com som.

Considere a seguinte cena onde um telefone tocando é sinalizado apenas pelo som e depois sinalizado com som e ajudas visuais.

Preferências do jogador

Várias configurações visuais estão disponíveis para os jogadores nos menus Configurações do Roblox e do jogo, incluindo transparência preferida, tamanho de texto preferido e movimento reduzido. Para otimizar a acessibilidade, sua interface do usuário deve acomodar cada uma.

Transparência preferida

A configuração de Transparência de Fundo mapeia para a propriedade GuiService.PreferredTransparency. Um valor de 1 indica que o jogador prefere a transparência de fundo padrão, enquanto um valor de 0 indica que o jogador prefere transparência de fundo totalmente opaca (não transparente) para melhorar a legibilidade e o contraste.

Multiplicar a BackgroundTransparency de um elemento da IU com PreferredTransparency é a maneira recomendada de usar essa configuração; os fundos se tornarão mais opacos à medida que PreferredTransparency se aproxima de 0.

  1. Usando o sistema de tagging, aplique uma tag de TransparentBack a todos os itens de IU com BackgroundTransparency, como TextLabels ou Frames.

    Quatro elementos TextLabel com níveis variados de BackgroundTransparency
    Quatro elementos TextLabel com níveis variados de BackgroundTransparency
  2. Cole o seguinte código em um LocalScript dentro de StarterPlayerScripts.

    Ajuste Dinâmico para Transparência Preferida

    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
    -- Armazena instâncias tags iniciais
    for _, object in CollectionService:GetTagged(TAG) do
    onInstanceAdded(object)
    end
    -- Detecta quando uma instância tag é adicionada ou removida
    CollectionService:GetInstanceAddedSignal(TAG):Connect(onInstanceAdded)
    CollectionService:GetInstanceRemovedSignal(TAG):Connect(onInstanceRemoved)
    -- Quando a configuração do jogo é alterada, ajusta instâncias tag
    GuiService:GetPropertyChangedSignal("PreferredTransparency"):Connect(function()
    for object, defaultTransparency in transparentBackObjects do
    object.BackgroundTransparency = defaultTransparency * GuiService.PreferredTransparency
    end
    end)
  3. Faça um teste no jogo, abra o menu Configurações e ajuste a Transparência de Fundo. Os elementos de IU marcados devem atualizar entre sua BackgroundTransparency padrão e totalmente opaca.

Tamanho de texto preferido

A configuração de Tamanho do Texto mapeia para a propriedade GuiService.PreferredTextSize, que é definida como Medium. Os jogadores podem optar por aumentar o tamanho do texto através do pipeline de renderização de fontes do motor para Large, Larger, ou Largest.

Ao trabalhar com elementos de IU, observe os seguintes comportamentos:

Movimento reduzido

A alternância de Reduzir Movimento mapeia para a propriedade GuiService.ReducedMotionEnabled. Um valor de true indica que o jogador deseja que os efeitos de movimento através de animações/tweens da IU sejam reduzidos ou completamente removidos.

Uma abordagem básica para remover movimento de tweens da IU é definir o parâmetro Time de um TweenInfo para 0 quando ReducedMotionEnabled é true, efetivamente fazendo com que o objeto da IU apareça instantaneamente em seu alvo.

Snap-to-Target de Tween de IU para Movimento Reduzido

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")
-- Usar tempo de tween de 0.75 segundos a menos que o movimento reduzido esteja habilitado
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()

Alternativamente ao instantâneo, você pode lidar com ReducedMotionEnabled com uma lógica mais distinta de true/false. Por exemplo, o seguinte LocalScript usa o tweening de movimento por padrão, mas muda para fade-in para jogadores que habilitam movimento reduzido, resultando em uma transição mais elegante sem movimento de posição.

Fallback para Tween de Fade para Movimento Reduzido

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")
-- Criar um grupo de canvas para tweenar todos os filhos uniformemente
local canvasGroup = Instance.new("CanvasGroup")
canvasGroup.Size = UDim2.fromScale(1, 1)
canvasGroup.BackgroundTransparency = 1
canvasGroup.Parent = menuUI
-- Adicionar filhos ao grupo de canvas
menuUI.SettingsFrame.Parent = canvasGroup
local tweenInfo = TweenInfo.new(0.75, Enum.EasingStyle.Cubic, Enum.EasingDirection.Out)
local tween
-- Usar tween de fading para movimento reduzido, ou um tween de movimento caso contrário
if GuiService.ReducedMotionEnabled then
-- Inicialmente definir o grupo de canvas como totalmente transparente (invisível)
canvasGroup.GroupTransparency = 1
-- Fade no grupo de canvas
tween = TweenService:Create(canvasGroup, tweenInfo, {GroupTransparency = 0})
else
-- Inicialmente definir o grupo de canvas fora da tela
canvasGroup.Position = UDim2.fromScale(0, -1)
-- Mover o grupo de canvas na tela
tween = TweenService:Create(canvasGroup, tweenInfo, {Position = UDim2.fromScale(0, 0)})
end
tween:Play()

Controles de volume

Sonhos diferentes tocando ao mesmo tempo podem ser desafiadores, distrativos ou difíceis de distinguir. Fornecer aos usuários controles de volume para diferentes "grupos" de áudio, como efeitos sonoros, música e fala, permite que eles personalizem seu jogo e se concentrem no que precisam.

Considere o seguinte exemplo de um jogo muito barulhento onde o usuário pode modificar os volumes da música e dos efeitos sonoros separadamente.

©2026 Roblox Corporation, Roblox, o logotipo Roblox e Powering Imagination estão entre nossas marcas registradas e não registradas nos EUA e em outros países.