Aksesibilitas adalah praktik merancang produk dan layanan agar dapat digunakan oleh orang dengan disabilitas. Statistik terbaru menyebutkan bahwa lebih dari 26% orang memiliki beberapa jenis disabilitas, jadi membuat permainan Roblox Anda dapat diakses dapat membantu Anda menjangkau audiens yang lebih luas.
Ukuran Teks
Pemain mungkin merasa sulit untuk membaca teks kecil. Bandingkan menu toko dalam permainan berikut dengan efek buram yang diterapkan, mensimulasikan seperti apa tampaknya bagi seseorang dengan penglihatan yang terganggu.

Jika Anda meningkatkan ukuran label font yang lebih kecil, itu akan lebih jelas bagi sebagian besar pemain.

Kontras Warna
Pemain mungkin merasa sulit membaca teks terang di latar belakang terang, atau teks gelap di latar belakang gelap. Untuk meningkatkan aksesibilitas, disarankan agar Anda memilih warna teks dan latar belakang dengan kontras warna yang cukup.


Ketidakbergantungan pada Warna
Lebih dari 5% orang di dunia memiliki beberapa bentuk buta warna. Meskipun jarang ada seseorang yang melihat hanya dalam hitam dan putih, bayangkan melihat permainan dalam skala abu-abu:

Dengan memodifikasi gambar untuk menggunakan simbol berbeda di samping warna, lebih banyak pemain dapat membedakan dalam permainan dan konteks lainnya:

Ketidakbergantungan pada Suara
Suara adalah tambahan yang sangat baik untuk permainan yang imersif, tetapi pemain yang memiliki gangguan pendengaran atau siapa saja yang mematikan volume mereka akan bingung oleh peristiwa dalam permainan yang hanya disampaikan dengan suara.
Pertimbangkan adegan berikut di mana telepon yang berdering hanya ditunjukkan dengan suara, dan kemudian ditunjukkan dengan suara dan bantuan visual.
Preferensi Pemain
Berbagai pengaturan visual tersedia untuk pemain dari menu Settings Roblox dan dalam permainan, termasuk transparansi yang disukai, ukuran teks yang disukai, dan gerakan yang dikurangi. Untuk aksesibilitas yang optimal, antarmuka pengguna Anda harus mengakomodasi masing-masing.
Transparansi yang Disukai
Pengaturan Background Transparency terkait dengan properti GuiService.PreferredTransparency. Nilai 1 menunjukkan bahwa pemain lebih menyukai transparansi latar belakang default, sementara nilai 0 menunjukkan bahwa pemain lebih memilih transparansi latar belakang yang sepenuhnya opak (tidak transparan) untuk meningkatkan keterbacaan dan kontras.
Mengalikan BackgroundTransparency dari elemen UI dengan PreferredTransparency adalah cara yang direkomendasikan untuk menggunakan pengaturan ini; latar belakang akan menjadi lebih opak saat PreferredTransparency mendekati 0.
Menggunakan sistem penandaan, terapkan tag TransparentBack pada semua item UI dengan BackgroundTransparency seperti TextLabels atau Frames.

Empat elemen TextLabel dengan tingkat BackgroundTransparency yang bervariasi Tempelkan kode berikut ke dalam LocalScript di dalam StarterPlayerScripts.
Penyesuaian Dinamis untuk Transparansi yang Disukailocal GuiService = game:GetService("GuiService")local CollectionService = game:GetService("CollectionService")local TAG = "TransparentBack"local transparentBackObjects = {}local function onInstanceAdded(object)if object.BackgroundTransparency thenlocal defaultTransparency = object.BackgroundTransparencytransparentBackObjects[object] = defaultTransparencyobject.BackgroundTransparency = defaultTransparency * GuiService.PreferredTransparencyendendlocal function onInstanceRemoved(object)transparentBackObjects[object] = nilend-- Simpan instance yang diberi tag awalfor _, object in CollectionService:GetTagged(TAG) doonInstanceAdded(object)end-- Deteksi kapan instance yang diberi tag ditambahkan atau dihapusCollectionService:GetInstanceAddedSignal(TAG):Connect(onInstanceAdded)CollectionService:GetInstanceRemovedSignal(TAG):Connect(onInstanceRemoved)-- Ketika pengaturan dalam permainan diubah, sesuaikan instance yang diberi tagGuiService:GetPropertyChangedSignal("PreferredTransparency"):Connect(function()for object, defaultTransparency in transparentBackObjects doobject.BackgroundTransparency = defaultTransparency * GuiService.PreferredTransparencyendend)Uji permainan, buka menu Settings, dan sesuaikan Background Transparency. Elemen UI yang diberi tag harus memperbarui antara BackgroundTransparency default mereka dan sepenuhnya opak.

Ukuran Teks yang Disukai
Pengaturan Text Size terkait dengan properti GuiService.PreferredTextSize yang secara default adalah Medium. Pemain dapat memilih untuk meningkatkan ukuran teks melalui jalur rendering font mesin ke Large, Larger, atau Largest.
Saat bekerja dengan elemen UI, perhatikan perilaku berikut:
Teks yang dibatasi pada ukuran minimum dan/atau maksimum melalui UITextSizeConstraint tidak akan mengecil di bawah atau memperluas di atas MinTextSize/MaxTextSize, terlepas dari pengaturan ukuran teks pemain.
Ketika TextScaled diaktifkan untuk TextLabel atau TextButton, teks elemen tidak akan diskalakan oleh nilai PreferredTextSize.
Elemen UI dengan AutomaticSize yang diaktifkan akan menyusut/membesar saat PreferredTextSize menurun/meningkat (batas elemen akan disesuaikan agar sesuai dengan teks yang diubah ukurannya).
Ketika TextWrapped diaktifkan untuk TextLabel atau TextButton, teks elemen akan membungkus ke baris tambahan saat PreferredTextSize meningkat, dalam batas ukuran absolut elemen tersebut.
Hasil yang dikembalikan oleh TextService:GetTextSize() dan TextService:GetTextBoundsAsync() menghormati perubahan terkait PreferredTextSize.
Gerakan yang Dikurangi
Toggling Reduce Motion terkait dengan properti GuiService.ReducedMotionEnabled. Nilai true menunjukkan bahwa pemain menginginkan efek gerakan melalui animasi/tweens UI untuk dikurangi atau dihapus sepenuhnya.
Pendekatan dasar untuk menghapus gerakan dari tween UI adalah dengan mengatur parameter Time dari TweenInfo ke 0 ketika ReducedMotionEnabled adalah true, secara efektif membuat objek UI cepat berpindah ke targetnya.
Snap-to-Target Tween UI untuk Gerakan yang Dikurangilocal GuiService = game:GetService("GuiService")local Players = game:GetService("Players")local TweenService = game:GetService("TweenService")local player = Players.LocalPlayerlocal playerGui = player.PlayerGuilocal menuUI = playerGui:WaitForChild("MenuUI")-- Gunakan waktu tween 0.75 detik kecuali gerakan yang dikurangi diaktifkanlocal TWEEN_TIME = if GuiService.ReducedMotionEnabled then 0 else 0.75local 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()
Sebagai alternatif dari pencocokan instan, Anda dapat menangani ReducedMotionEnabled dengan logika true/false yang lebih jelas. Misalnya, LocalScript berikut menggunakan tween gerakan secara default, tetapi beralih ke fade-in untuk pemain yang mengaktifkan gerakan yang dikurangi, menghasilkan transisi yang lebih elegan tanpa pergerakan posisi.
Fallback to Fade Tween untuk Gerakan yang Dikurangilocal GuiService = game:GetService("GuiService")local Players = game:GetService("Players")local TweenService = game:GetService("TweenService")local player = Players.LocalPlayerlocal playerGui = player.PlayerGuilocal menuUI = playerGui:WaitForChild("MenuUI")-- Buat grup kanvas untuk tween semua anak dengan seragamlocal canvasGroup = Instance.new("CanvasGroup")canvasGroup.Size = UDim2.fromScale(1, 1)canvasGroup.BackgroundTransparency = 1canvasGroup.Parent = menuUI-- Tambahkan anak ke grup kanvasmenuUI.SettingsFrame.Parent = canvasGrouplocal tweenInfo = TweenInfo.new(0.75, Enum.EasingStyle.Cubic, Enum.EasingDirection.Out)local tween-- Gunakan tween fading untuk gerakan yang dikurangi, atau tween gerakan sebaliknyaif GuiService.ReducedMotionEnabled then-- Awalnya atur grup kanvas ke sepenuhnya transparan (tidak terlihat)canvasGroup.GroupTransparency = 1-- Fade in grup kanvastween = TweenService:Create(canvasGroup, tweenInfo, {GroupTransparency = 0})else-- Awalnya atur grup kanvas di luar layarcanvasGroup.Position = UDim2.fromScale(0, -1)-- Pindahkan grup kanvas ke layartween = TweenService:Create(canvasGroup, tweenInfo, {Position = UDim2.fromScale(0, 0)})endtween:Play()
Kontrol Volume
Berbagai suara yang diputar sekaligus dapat menjadi berlebihan, mengganggu, atau sulit dibedakan. Memberikan pengguna kontrol volume untuk "kelompok" audio yang berbeda seperti efek suara, musik, dan suara memungkinkan mereka untuk menyesuaikan permainan mereka dan fokus pada apa yang mereka butuhkan.
Pertimbangkan contoh berikut dari permainan yang sangat berisik di mana pengguna dapat mengubah volume musik dan efek suara secara terpisah.