Richtlinien zur Barrierefreiheit

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Barrierefreiheit ist die Praxis, Produkte und Dienstleistungen so zu gestalten, dass sie von Menschen mit Behinderungen genutzt werden können. Aktuelle Statistiken zeigen, dass über 26 % der Menschen irgendeine Form von Behinderung haben, daher kann die Barrierefreiheit Ihres Roblox-Spiels Ihnen helfen, ein breiteres Publikum zu erreichen.

Textgröße

Spieler können Schwierigkeiten haben, kleinen Text zu lesen. Vergleichen Sie das folgende In-Game-Shop-Menü mit einer angewendeten Unschärfe, die simuliert, wie es für jemanden mit eingeschränktem Sehvermögen aussehen könnte.

Beispiel für kleinen Text in der Benutzeroberfläche

Wenn Sie die Größe der kleineren Schriftarten erhöhen, wird es für die meisten Spieler klarer.

Beispiel für größeren Text in der Benutzeroberfläche

Farbkontrast

Spieler können Schwierigkeiten haben, hellen Text auf einem hellen Hintergrund oder dunklen Text auf einem dunklen Hintergrund zu lesen. Um die Barrierefreiheit zu verbessern, wird empfohlen, Text- und Hintergrundfarben mit ausreichendem Farbkontrast auszuwählen.

Beispiel für UI-Elemente mit hohem Kontrast
Beispiel für UI-Elemente mit niedrigem Kontrast

Farbenunabhängigkeit

Über 5 % der Menschen weltweit haben eine Form von Farbenblindheit. Obwohl es selten ist, dass jemand nur in Schwarz und Weiß sieht, stellen Sie sich vor, ein Spiel in Graustufen zu betrachten:

Beispiel für eine Benutzeroberfläche, die in voller Farbe angezeigt wird

Durch die Modifizierung des Bildes, um unterschiedliche Symbole neben Farben zu verwenden, können mehr Spieler die Unterschiede im Gameplay und in anderen Kontexten erkennen:

Beispiel für eine Benutzeroberfläche, die in voller Farbe angezeigt wird

Geräuschunabhängigkeit

Geräusche sind eine hervorragende Ergänzung für immersive Spiele, aber hörgeschädigte Spieler oder Personen, die den Ton abgeschaltet haben, könnten durch In-Game-Ereignisse, die nur akustisch vermittelt werden, verwirrt sein.

Betrachten Sie die folgende Szene, in der ein klingendes Telefon nur durch Geräuschsignal gegeben wird, und dann sowohl durch Geräusch als auch visuelle Hilfsmittel signalisiert wird.

Spielerpräferenzen

Verschiedene visuelle Einstellungen stehen Spielern über die Roblox- und die In-Game-Einstellungen-Menüs zur Verfügung, einschließlich bevorzugte Transparenz, bevorzugte Textgröße und reduzierte Bewegung. Für optimale Barrierefreiheit sollte Ihre Benutzeroberfläche all diese berücksichtigen.

Bevorzugte Transparenz

Die Einstellung Hintergrund Transparenz entspricht der GuiService.PreferredTransparency-Eigenschaft. Ein Wert von 1 zeigt an, dass der Spieler die standardmäßige Hintergrundtransparenz bevorzugt, während ein Wert von 0 anzeigt, dass der Spieler eine vollständig opake (nicht transparente) Hintergrundtransparenz für verbesserte Lesbarkeit und Kontrast bevorzugt.

Das Multiplizieren der BackgroundTransparency eines UI-Elements mit der PreferredTransparency ist der empfohlene Weg, diese Einstellung zu verwenden; Hintergründe werden undurchsichtiger, je näher PreferredTransparency an 0 kommt.

  1. Verwenden Sie das Tagging-System, um allen UI-Elementen mit BackgroundTransparency, wie TextLabels oder Frames, ein Tag von TransparentBack zuzuweisen.

    Vier TextLabel-Elemente mit unterschiedlichen Hintergrundtransparenzstufen
    Vier TextLabel-Elemente mit unterschiedlichen BackgroundTransparency-Stufen
  2. Fügen Sie den folgenden Code in ein LocalScript innerhalb der StarterPlayerScripts ein.

    Dynamische Anpassung für bevorzugte Transparenz

    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
    -- Speichern Sie die anfänglichen getaggten Instanzen
    for _, object in CollectionService:GetTagged(TAG) do
    onInstanceAdded(object)
    end
    -- Erkennen Sie, wann eine getaggte Instanz hinzugefügt oder entfernt wird
    CollectionService:GetInstanceAddedSignal(TAG):Connect(onInstanceAdded)
    CollectionService:GetInstanceRemovedSignal(TAG):Connect(onInstanceRemoved)
    -- Wenn die In-Game-Einstellung geändert wird, passen Sie die getaggten Instanzen an
    GuiService:GetPropertyChangedSignal("PreferredTransparency"):Connect(function()
    for object, defaultTransparency in transparentBackObjects do
    object.BackgroundTransparency = defaultTransparency * GuiService.PreferredTransparency
    end
    end)
  3. Testen Sie das Spiel, öffnen Sie das Einstellungen-Menü und passen Sie die Hintergrundtransparenz an. Die getaggten UI-Elemente sollten zwischen ihrer Standard-BackgroundTransparency und vollständig opak aktualisiert werden.

Bevorzugte Textgröße

Die Einstellung Textgröße entspricht der GuiService.PreferredTextSize-Eigenschaft, die standardmäßig auf Medium eingestellt ist. Spieler können die Textgröße über die Schriftart-rendering-Pipeline des Engines auf Large, Larger oder Largest erhöhen.

Beachten Sie beim Arbeiten mit UI-Elementen die folgenden Verhaltensweisen:

Reduzierte Bewegung

Der Reduzierte Bewegung-Schalter entspricht der GuiService.ReducedMotionEnabled-Eigenschaft. Ein Wert von true zeigt an, dass der Spieler Bewegungseffekte durch UI Animationen/Transitions reduziert oder vollständig entfernt haben möchte.

Ein einfacher Ansatz zum Entfernen von Bewegung aus UI-Transitions besteht darin, den Time-Parameter von einem TweenInfo auf 0 einzustellen, wenn ReducedMotionEnabled true ist, sodass das UI-Objekt sofort auf sein Ziel springt.

UI-WTween Snap-to-Target für reduzierte Bewegung

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")
-- Verwenden Sie eine Tweenzeit von 0,75 Sekunden, es sei denn, die reduzierte Bewegung ist aktiviert
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()

Alternativ zum sofortigen Springen können Sie ReducedMotionEnabled mit einer klareren Logik von true/false behandeln. Zum Beispiel nutzt das folgende LocalScript standardmäßig Bewegungstweens, wechselt jedoch zu einem Fade-in für Spieler, die reduzierte Bewegung aktivieren, was zu einem eleganteren Übergang ohne Positionsänderung führt.

Fallback zu Fade Tween für reduzierte Bewegung

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")
-- Erstellen Sie eine Canvas-Gruppe, um alle Kinder einheitlich zu tween
local canvasGroup = Instance.new("CanvasGroup")
canvasGroup.Size = UDim2.fromScale(1, 1)
canvasGroup.BackgroundTransparency = 1
canvasGroup.Parent = menuUI
-- Fügen Sie der Canvas-Gruppe Kinder hinzu
menuUI.SettingsFrame.Parent = canvasGroup
local tweenInfo = TweenInfo.new(0.75, Enum.EasingStyle.Cubic, Enum.EasingDirection.Out)
local tween
-- Verwenden Sie Fade Tween für reduzierte Bewegung oder einen Bewegungstween sonst
if GuiService.ReducedMotionEnabled then
-- Setzen Sie die Canvas-Gruppe zunächst auf vollständig transparent (unsichtbar)
canvasGroup.GroupTransparency = 1
-- Fade in Canvas-Gruppe
tween = TweenService:Create(canvasGroup, tweenInfo, {GroupTransparency = 0})
else
-- Setzen Sie die Canvas-Gruppe zunächst außerhalb des Bildschirms
canvasGroup.Position = UDim2.fromScale(0, -1)
-- Bewegen Sie die Canvas-Gruppe auf den Bildschirm
tween = TweenService:Create(canvasGroup, tweenInfo, {Position = UDim2.fromScale(0, 0)})
end
tween:Play()

Lautstärkeregler

Unterschiedliche Geräusche, die gleichzeitig abgespielt werden, können überwältigend, ablenkend oder schwer zu unterscheiden sein. Den Nutzern Lautstärkeregler für verschiedene "Gruppen" von Audio wie Soundeffekte, Musik und Sprache bereitzustellen, ermöglicht es ihnen, ihr Spiel anzupassen und sich auf das zu konzentrieren, was sie benötigen.

Betrachten Sie das folgende Beispiel eines sehr lauten Spiels, in dem der Benutzer die Lautstärke von Musik und Soundeffekten separat anpassen kann.

©2026 Roblox Corporation. Roblox, das Roblox-Logo und "Powering Imagination" gehören zu unseren eingetragenen und nicht eingetragenen Markenzeichen in den USA und anderen Ländern.