Linee guida per l'accessibilità

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Accessibilità è la pratica di progettare prodotti e servizi per essere utilizzabili da persone con disabilità. Statistiche recenti indicano che oltre il 26% delle persone ha qualche tipo di disabilità, quindi rendere accessibile il tuo gioco Roblox può aiutarti a raggiungere un pubblico più ampio.

Dimensione del testo

I giocatori possono avere difficoltà a leggere il testo di piccole dimensioni. Confronta il seguente menu del negozio in-game con un effetto sfocato applicato, simulando come potrebbe apparire a qualcuno con visione compromessa.

Esempio di testo piccolo sull'interfaccia utente

Se aumenti la dimensione delle etichette di font più piccole, sarà più chiaro per la maggior parte dei giocatori.

Esempio di testo grande sull'interfaccia utente

Contrasto dei colori

I giocatori potrebbero trovare difficile leggere il testo chiaro su uno sfondo chiaro, o il testo scuro su uno sfondo scuro. Per migliorare l'accessibilità, si consiglia di scegliere colori del testo e dello sfondo con un contrasto di colore sufficiente.

Esempio di elementi UI con alto contrasto
Esempio di elementi UI con basso contrasto

Non dipendenza dal colore

Oltre il 5% delle persone nel mondo ha qualche forma di daltonismo. Sebbene sia raro che qualcuno veda solo in bianco e nero, immagina di visualizzare un gioco in scala di grigi:

Esempio di interfaccia utente mostrata a colori

Modificando l'immagine per usare diversi simboli insieme ai colori, più giocatori possono distinguere la differenza nel gameplay e in altri contesti:

Esempio di interfaccia utente mostrata a colori

Non dipendenza dal suono

Il suono è un'ottima aggiunta per giochi immersivi, ma i giocatori con problemi di udito o chiunque disattivi l'audio saranno confusi da eventi di gioco che vengono comunicati solo tramite suoni.

Considera la seguente scena in cui un telefono che squilla viene segnalato solo dal suono, e poi segnalato con sia suoni che aiuti visivi.

Preferenze del giocatore

Diverse impostazioni visive sono disponibili per i giocatori nei menù Impostazioni di Roblox e in-game, tra cui trasparenza preferita, dimensione del testo preferita e movimento ridotto. Per un'optimal accessibilità, la tua interfaccia utente dovrebbe adattarsi a ciascuna di esse.

Trasparenza preferita

L'impostazione Trasparenza Di Sfondo si mappa alla proprietà GuiService.PreferredTransparency. Un valore di 1 indica che il giocatore preferisce la trasparenza di sfondo predefinita, mentre un valore di 0 indica che il giocatore preferisce una trasparenza di sfondo completamente opaca (non trasparente) per una migliore leggibilità e contrasto.

Moltiplicare la BackgroundTransparency di un elemento UI per PreferredTransparency è il modo raccomandato per utilizzare questa impostazione; gli sfondi diventeranno più opachi man mano che PreferredTransparency si avvicina a 0.

  1. Utilizzando il sistema di tagging, applica un tag di TransparentBack a tutti gli elementi UI con BackgroundTransparency come TextLabels o Frames.

    Quattro elementi TextLabel con vari livelli di BackgroundTransparency
    Quattro elementi TextLabel con diversi livelli di BackgroundTransparency
  2. Incolla il seguente codice in uno LocalScript all'interno di StarterPlayerScripts.

    Regolazione Dinamica per la Trasparenza Preferita

    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
    -- Memorizza le istanze iniziali contrassegnate
    for _, object in CollectionService:GetTagged(TAG) do
    onInstanceAdded(object)
    end
    -- Rileva quando un'istanza contrassegnata viene aggiunta o rimossa
    CollectionService:GetInstanceAddedSignal(TAG):Connect(onInstanceAdded)
    CollectionService:GetInstanceRemovedSignal(TAG):Connect(onInstanceRemoved)
    -- Quando l'impostazione in-game viene cambiata, regola le istanze contrassegnate
    GuiService:GetPropertyChangedSignal("PreferredTransparency"):Connect(function()
    for object, defaultTransparency in transparentBackObjects do
    object.BackgroundTransparency = defaultTransparency * GuiService.PreferredTransparency
    end
    end)
  3. Testa il gioco, apri il menu Impostazioni e regola la Trasparenza di Sfondo. Gli elementi UI contrassegnati dovrebbero aggiornarsi tra la loro BackgroundTransparency predefinita e completamente opaca.

Dimensione del testo preferita

L'impostazione Dimensione Testo si mappa alla proprietà GuiService.PreferredTextSize che di default è impostata su Medium. I giocatori possono scegliere di aumentare la dimensione del testo attraverso il pipeline di rendering del font dell'engine a Large, Larger o Largest.

Quando lavori con elementi UI, nota i seguenti comportamenti:

Movimento ridotto

L'interruttore Riduci Movimento si mappa alla proprietà GuiService.ReducedMotionEnabled. Un valore di true indica che il giocatore desidera che gli effetti di movimento attraverso le animazioni/tweens UI siano ridotti o completamente rimossi.

Un approccio base per rimuovere il movimento dai tween UI è impostare il parametro Time di un TweenInfo a 0 quando ReducedMotionEnabled è true, rendendo effettivamente l'oggetto UI scattare al suo bersaglio istantaneamente.

UI Tween Snap-to-Target per Movimento Ridotto

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")
-- Usa un tempo di tween di 0.75 secondi a meno che il movimento ridotto non sia abilitato
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()

In alternativa allo scatto istantaneo, puoi gestire ReducedMotionEnabled con logica più distintiva true/false. Ad esempio, il seguente LocalScript utilizza normalmente il tweening del movimento, ma passa al fade-in per i giocatori che abilitano il movimento ridotto, risultando in una transizione più elegante senza movimento posizionale.

Fallback to Fade Tween per Movimento Ridotto

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")
-- Crea un gruppo di canvas per tweenare tutti i figli uniformemente
local canvasGroup = Instance.new("CanvasGroup")
canvasGroup.Size = UDim2.fromScale(1, 1)
canvasGroup.BackgroundTransparency = 1
canvasGroup.Parent = menuUI
-- Aggiungi figli al gruppo di canvas
menuUI.SettingsFrame.Parent = canvasGroup
local tweenInfo = TweenInfo.new(0.75, Enum.EasingStyle.Cubic, Enum.EasingDirection.Out)
local tween
-- Usa il tween di fading per movimento ridotto, o un tween di movimento altrimenti
if GuiService.ReducedMotionEnabled then
-- Inizialmente imposta il gruppo di canvas a completamente trasparente (invisibile)
canvasGroup.GroupTransparency = 1
-- Fade in del gruppo canvas
tween = TweenService:Create(canvasGroup, tweenInfo, {GroupTransparency = 0})
else
-- Inizialmente imposta il gruppo di canvas fuori schermo
canvasGroup.Position = UDim2.fromScale(0, -1)
-- Muovi il gruppo di canvas in schermo
tween = TweenService:Create(canvasGroup, tweenInfo, {Position = UDim2.fromScale(0, 0)})
end
tween:Play()

Controlli del volume

Diversi suoni che suonano contemporaneamente possono essere travolgenti, distraenti o difficili da distinguere. Fornire agli utenti controlli del volume per diversi "gruppi" di audio come effetti sonori, musica e discorsi consente loro di personalizzare il proprio gioco e concentrarsi su ciò di cui hanno bisogno.

Considera il seguente esempio di un gioco molto rumoroso in cui l'utente può modificare separatamente i volumi della musica e degli effetti sonori.

© 2026 Roblox Corporation. Roblox, il logo Roblox e Powering Imagination sono tra i nostri marchi registrati e non registrati negli Stati Uniti. e altri paesi.