From 16710282bae4825dabda40aab89cfbe3e0c5ffa4 Mon Sep 17 00:00:00 2001 From: Martin Prokoph Date: Wed, 1 Oct 2025 18:18:05 +0200 Subject: [PATCH] feat: better UX and accessibility Closes #118 Action buttons now show tooltips explaining their functionality. These will also be read by the narrator. --- .../eu/midnightdust/lib/config/MidnightConfigScreen.java | 6 ++++-- .../src/main/resources/assets/midnightlib/lang/de_de.json | 5 ++++- .../src/main/resources/assets/midnightlib/lang/en_us.json | 5 ++++- gradle.properties | 2 +- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/common/src/main/java/eu/midnightdust/lib/config/MidnightConfigScreen.java b/common/src/main/java/eu/midnightdust/lib/config/MidnightConfigScreen.java index 48f7246..ff7b149 100644 --- a/common/src/main/java/eu/midnightdust/lib/config/MidnightConfigScreen.java +++ b/common/src/main/java/eu/midnightdust/lib/config/MidnightConfigScreen.java @@ -6,6 +6,7 @@ import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.tab.GridScreenTab; import net.minecraft.client.gui.tab.Tab; import net.minecraft.client.gui.tab.TabManager; +import net.minecraft.client.gui.tooltip.Tooltip; import net.minecraft.client.gui.widget.*; import net.minecraft.client.input.KeyInput; import net.minecraft.client.resource.language.I18n; @@ -192,7 +193,7 @@ public class MidnightConfigScreen extends Screen { info.listIndex = info.listIndex != values.size() ? info.listIndex + 1 : 0; info.tempValue = info.listIndex != values.size() ? info.toTemporaryValue() : ""; updateList(); - })).dimensions(width - 185, 0, 20, 20).build(); + })).dimensions(width - 185, 0, 20, 20).tooltip(Tooltip.of(Text.translatable("midnightconfig.action.list_index", info.listIndex))).build(); } if (e.isColor()) { ButtonWidget colorButton = ButtonWidget.builder(Text.literal("⬛"), @@ -203,7 +204,7 @@ public class MidnightConfigScreen extends Screen { updateList(); } }).start() - ).dimensions(width - 185, 0, 20, 20).build(); + ).dimensions(width - 185, 0, 20, 20).tooltip(Tooltip.of(Text.translatable("midnightconfig.action.color_chooser"))).build(); try { colorButton.setMessage(Text.literal("⬛").setStyle(Style.EMPTY.withColor(Color.decode(info.tempValue).getRGB()))); } catch (Exception ignored) { @@ -225,6 +226,7 @@ public class MidnightConfigScreen extends Screen { } }).start(), true ).texture(Identifier.of("midnightlib", "icon/explorer"), 12, 12).dimension(20, 20).build(); + explorerButton.setTooltip(Tooltip.of(Text.translatable("midnightconfig.action.file_chooser"))); explorerButton.setPosition(width - 185, 0); info.actionButton = explorerButton; } diff --git a/common/src/main/resources/assets/midnightlib/lang/de_de.json b/common/src/main/resources/assets/midnightlib/lang/de_de.json index 2afbf42..aa2e804 100755 --- a/common/src/main/resources/assets/midnightlib/lang/de_de.json +++ b/common/src/main/resources/assets/midnightlib/lang/de_de.json @@ -3,5 +3,8 @@ "midnightlib.midnightconfig.title":"MidnightLib Konfiguration", "midnightlib.midnightconfig.config_screen_list":"Konfigurationsübersicht", "modmenu.summaryTranslation.midnightlib": "Code-Bibliothek für einfache Konfiguration.", - "midnightconfig.colorChooser.title": "Wähle eine Farbe" + "midnightconfig.colorChooser.title": "Wähle eine Farbe", + "midnightconfig.action.list_index": "Bearbeite Liste an Index %s", + "midnightconfig.action.color_chooser": "Öffne Farbauswahl", + "midnightconfig.action.file_chooser": "Öffne Dateiauswahl" } \ No newline at end of file diff --git a/common/src/main/resources/assets/midnightlib/lang/en_us.json b/common/src/main/resources/assets/midnightlib/lang/en_us.json index d81ceab..cfc202e 100755 --- a/common/src/main/resources/assets/midnightlib/lang/en_us.json +++ b/common/src/main/resources/assets/midnightlib/lang/en_us.json @@ -9,5 +9,8 @@ "midnightlib.curseforge":"CurseForge", "midnightlib.wiki":"Wiki", "modmenu.summaryTranslation.midnightlib": "Common Library for easy configuration.", - "midnightconfig.colorChooser.title": "Choose a color" + "midnightconfig.colorChooser.title": "Choose a color", + "midnightconfig.action.list_index": "Editing list at index %s", + "midnightconfig.action.color_chooser": "Open color chooser", + "midnightconfig.action.file_chooser": "Open file chooser" } \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 6491a29..266bbb6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,7 +6,7 @@ yarn_mappings=1.21.9+build.1 enabled_platforms=fabric,neoforge archives_base_name=midnightlib -mod_version=1.8.0 +mod_version=1.8.1 maven_group=eu.midnightdust release_type=release curseforge_id=488090