แนวทางการเข้าถึง

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

การเข้าถึง คือแนวทางการออกแบบผลิตภัณฑ์และบริการให้สามารถใช้งานได้โดยผู้ที่มีความพิการ สถิติเมื่อไม่นานมานี้เผยว่า มีผู้คนกว่า 26% ที่มีความพิการบางประเภท ดังนั้นการทำให้เกม Roblox ของคุณเข้าถึงได้สามารถช่วยให้คุณเข้าถึงผู้ชมที่กว้างขึ้น

ขนาดข้อความ

ผู้เล่นอาจพบปัญหาในการอ่านข้อความที่มีขนาดเล็ก เปรียบเทียบเมนูร้านค้าในเกมด้านล่างนี้ด้วยการเบลอเพื่อจำลองภาพที่อาจดูเหมือนกับใครบางคนที่มีวิสัยทัศน์บกพร่อง

ตัวอย่างข้อความขนาดเล็กบนส่วนติดต่อผู้ใช้

ถ้าคุณเพิ่มขนาดของข้อความขนาดเล็ก ผลลัพธ์จะชัดเจนขึ้นสำหรับผู้เล่นส่วนใหญ่

ตัวอย่างข้อความขนาดใหญ่บนส่วนติดต่อผู้ใช้

ความคมชัดของสี

ผู้เล่นอาจพบความยากในการอ่านข้อความสว่างบนพื้นหลังสว่าง หรือข้อความมืดบนพื้นหลังมืด เพื่อปรับปรุงการเข้าถึง แนะนำให้คุณเลือกสีข้อความและสีพื้นหลังที่มีความคมชัดเพียงพอ

ตัวอย่างส่วนติดต่อผู้ใช้ที่มีความคมชัดสูง
ตัวอย่างส่วนติดต่อผู้ใช้ที่มีความคมชัดต่ำ

การไม่พึ่งพาสี

มีผู้คนกว่า 5% ทั่วโลกที่มีอาการตาบอดสี แม้ว่าในกรณีที่หายากจะมีคนที่มองเห็น เฉพาะ ขาวดำ แต่ลองนึกภาพการมองเกมในเฉดสีเทา:

ตัวอย่างส่วนติดต่อผู้ใช้ที่แสดงในสีสมบูรณ์

โดยการปรับเปลี่ยนภาพเพื่อใช้ สัญลักษณ์ ต่างๆ ร่วมกับสี ผู้เล่นมากขึ้นสามารถบอกความแตกต่างในการเล่นและในบริบทอื่นๆ:

ตัวอย่างส่วนติดต่อผู้ใช้ที่แสดงในสีสมบูรณ์

การไม่พึ่งพาเสียง

เสียงเป็นคุณสมบัติที่ยอดเยี่ยมสำหรับเกมที่ดื่มด่ำ แต่ผู้เล่นที่มีอาการได้ยินบกพร่องหรือใครก็ตามที่ปิดเสียงจะรู้สึกสับสนกับเหตุการณ์ในเกมที่ถูกถ่ายทอด เฉพาะ ด้วยเสียง

พิจารณาฉากต่อไปนี้ซึ่งมีโทรศัพท์ที่ดังขึ้นเพียงแค่ส่งสัญญาณด้วยเสียง และจากนั้นส่งสัญญาณด้วยเสียง และ ช่วยเหลือสายตา

ความชอบของผู้เล่น

มีการตั้งค่าภาพต่างๆ ที่พร้อมใช้งานให้กับผู้เล่นจากเมนู การตั้งค่า ของ Roblox และในเกม รวมถึง ความโปร่งแสงที่ต้องการ, ขนาดข้อความที่ต้องการ และ การลดการเคลื่อนไหว สำหรับการเข้าถึงอย่างเหมาะสม หน้าจอ ส่วนติดต่อผู้ใช้ ของคุณควรรองรับแต่ละรายการ

ความโปร่งแสงที่ต้องการ

การตั้งค่า ความโปร่งแสงของพื้นหลัง จะเชื่อมโยงกับคุณสมบัติ GuiService.PreferredTransparency ค่า 1 หมายถึงผู้เล่นต้องการความโปร่งแสงพื้นหลังตามค่าเริ่มต้น ในขณะที่ค่า 0 หมายถึงผู้เล่นต้องการความโปร่งแสงพื้นหลังแบบทึบทั้งหมดเพื่อการอ่านที่ดียิ่งขึ้นและความแตกต่าง

การคูณ BackgroundTransparency ของ UI กับ PreferredTransparency เป็นวิธีที่แนะนำในการใช้การตั้งค่านี้; พื้นหลังจะกลายเป็นทึบมากขึ้นเมื่อ PreferredTransparency เข้าใกล้ 0

  1. โดยใช้ระบบ การแท็ก ให้นำแท็ก TransparentBack ไปใช้กับไอเท็ม UI ทั้งหมดที่มี BackgroundTransparency เช่น TextLabels หรือ Frames

    สี่องค์ประกอบ TextLabel ที่มีระดับ BackgroundTransparency ที่แตกต่างกัน
    สี่องค์ประกอบ TextLabel ที่มีระดับ BackgroundTransparency ที่แตกต่างกัน
  2. วางโค้ดต่อไปนี้ลงใน LocalScript ภายใน StarterPlayerScripts

    การปรับแต่งแบบไดนามิกสำหรับความโปร่งแสงที่ต้องการ

    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
    -- เก็บอินสแตนซ์ที่ถูกแท็กไว้เริ่มต้น
    for _, object in CollectionService:GetTagged(TAG) do
    onInstanceAdded(object)
    end
    -- ตรวจสอบเมื่ออินสแตนซ์ที่ถูกแท็กถูกเพิ่มหรือถูกลบ
    CollectionService:GetInstanceAddedSignal(TAG):Connect(onInstanceAdded)
    CollectionService:GetInstanceRemovedSignal(TAG):Connect(onInstanceRemoved)
    -- เมื่อการตั้งค่าในเกมถูกเปลี่ยน ปรับอินสแตนซ์ที่ถูกแท็ก
    GuiService:GetPropertyChangedSignal("PreferredTransparency"):Connect(function()
    for object, defaultTransparency in transparentBackObjects do
    object.BackgroundTransparency = defaultTransparency * GuiService.PreferredTransparency
    end
    end)
  3. ทดสอบเกม เปิดเมนู การตั้งค่า และปรับ ความโปร่งแสงของพื้นหลัง องค์ประกอบ UI ที่ถูกแท็กควรอัปเดตระหว่าง BackgroundTransparency เริ่มต้นและแบบทึบทั้งหมด

ขนาดข้อความที่ต้องการ

การตั้งค่า ขนาดข้อความ จะเชื่อมโยงกับคุณสมบัติ GuiService.PreferredTextSize ซึ่งค่าเริ่มต้นคือ Medium ผู้เล่นสามารถเลือกเพิ่มขนาดข้อความผ่านระบบการเรนเดอร์ฟอนต์ของเครื่องยนต์ไปยัง Large, Larger หรือ Largest

เมื่อทำงานกับองค์ประกอบ UI โปรดทราบว่าพฤติกรรมต่อไปนี้:

  • ข้อความที่ถูกจำกัดให้มีขนาดขั้นต่ำและ/หรือขนาดสูงสุดผ่าน UITextSizeConstraint จะ ไม่ หดตัวลงหรือขยายออกเหนือ MinTextSize/MaxTextSize, โดยที่ไม่คำนึงถึงการตั้งค่าขนาดข้อความของผู้เล่น

  • เมื่อ TextScaled เปิดใช้งานสำหรับ TextLabel หรือ TextButton, ข้อความขององค์ประกอบจะ ไม่ ถูกปรับตามค่า PreferredTextSize

  • องค์ประกอบ UI ที่เปิดใช้งาน AutomaticSize จะหดตัว/ขยายขึ้นเมื่อ PreferredTextSize ลดลง/เพิ่มขึ้น (ขอบเขตขององค์ประกอบจะปรับขนาดให้พอดีกับข้อความที่เปลี่ยนขนาด)

  • เมื่อ TextWrapped เปิดใช้งานสำหรับ TextLabel หรือ TextButton, ข้อความขององค์ประกอบจะถูกห่อเป็นบรรทัดเพิ่มเติมเมื่อ PreferredTextSize เพิ่มขึ้น ภายในขีดจำกัดของขนาดสัมบูรณ์ขององค์ประกอบ

  • ผลลัพธ์ที่ส่งกลับจาก TextService:GetTextSize() และ TextService:GetTextBoundsAsync() จะให้เกียรติกับการเปลี่ยนแปลงที่เกี่ยวข้องกับ PreferredTextSize

การลดการเคลื่อนไหว

การเปิด/ปิดสวิตช์ ลดการเคลื่อนไหว จะเชื่อมโยงกับคุณสมบัติ GuiService.ReducedMotionEnabled ค่า true หมายถึงผู้เล่นต้องการให้เอฟเฟกต์การเคลื่อนไหวผ่าน การเคลื่อนไหวของ UI/อนิเมชัน ถูกลดหรือยกเลิก

วิธีการพื้นฐานในการลบการเคลื่อนไหวจากการเคลื่อนไหวของ UI คือการตั้งค่าพารามิเตอร์ Time ของ TweenInfo ให้เป็น 0 เมื่อ ReducedMotionEnabled เป็น true ทำให้วัตถุ UI กระตุกไปยังเป้าหมายทันที

UI Tween Snap-to-Target สำหรับการลดการเคลื่อนไหว

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")
-- ใช้เวลาเคลื่อนไหว 0.75 วินาที เว้นแต่จะเปิดการลดการเคลื่อนไหว
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()

อีกทางเลือกหนึ่งในการกระตุกทันที คุณสามารถจัดการกับ ReducedMotionEnabled ด้วยตรรกะที่ชัดเจนกว่า true/false ตัวอย่างรหัส LocalScript ต่อไปนี้ใช้การเคลื่อนไหวเป็นค่าเริ่มต้น แต่สลับไปใช้การจางเข้าสำหรับผู้เล่นที่เปิดการลดการเคลื่อนไหว ซึ่งส่งผลให้มีการเปลี่ยนแปลงที่สวยงามยิ่งขึ้นโดยไม่ต้องเคลื่อนไหว

การกลับไปใช้ Fallback to Fade Tween สำหรับการลดการเคลื่อนไหว

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")
-- สร้างกลุ่มผืนผ้าเพื่อให้เคลื่อนไหวทุกเด็กภายในได้อย่างสม่ำเสมอ
local canvasGroup = Instance.new("CanvasGroup")
canvasGroup.Size = UDim2.fromScale(1, 1)
canvasGroup.BackgroundTransparency = 1
canvasGroup.Parent = menuUI
-- เพิ่มเด็กให้กับกลุ่มผืนผ้า
menuUI.SettingsFrame.Parent = canvasGroup
local tweenInfo = TweenInfo.new(0.75, Enum.EasingStyle.Cubic, Enum.EasingDirection.Out)
local tween
-- ใช้การจางออกสำหรับการลดการเคลื่อนไหว หรือการเคลื่อนไหวถ้าไม่มีกำหนด
if GuiService.ReducedMotionEnabled then
-- ตั้งค่ากลุ่มผืนผ้าเริ่มต้นให้โปร่งใสทั้งหมด (มองไม่เห็น)
canvasGroup.GroupTransparency = 1
-- จางกลุ่มผืนผ้า
tween = TweenService:Create(canvasGroup, tweenInfo, {GroupTransparency = 0})
else
-- ตั้งค่ากลุ่มผืนผ้าเริ่มต้นให้อยู่นอกจอ
canvasGroup.Position = UDim2.fromScale(0, -1)
-- เคลื่อนกลุ่มผืนผ้าลงในจอ
tween = TweenService:Create(canvasGroup, tweenInfo, {Position = UDim2.fromScale(0, 0)})
end
tween:Play()

การควบคุมเสียง

การเล่นเสียงต่างๆ พร้อมกันอาจทำให้รู้สึกท่วมท้น สับสน หรือยากต่อการแยกแยะ การให้ผู้ใช้ควบคุมระดับเสียงสำหรับ "กลุ่ม" เสียงต่างๆ เช่น เสียงเอฟเฟกต์ เพลง และการพูดช่วยให้พวกเขาปรับแต่งเกมของตนและมุ่งเน้นไปที่สิ่งที่พวกเขาต้องการ

พิจารณาตัวอย่างเกมที่มีเสียงดังมากซึ่งผู้ใช้สามารถปรับระดับเสียงเพลงและเสียงเอฟเฟกต์แยกกันได้

©2026 Roblox Corporation. Roblox, โลโก้ Roblox และ Powering Imagination เป็นส่วนหนึ่งของเครื่องหมายการค้าที่จดทะเบียน และไม่ได้จดทะเบียนของเราในสหรัฐฯ และประเทศอื่นๆ