From 0afe81873c9621b863611d91d838243d788d6991 Mon Sep 17 00:00:00 2001 From: InspectorCaracal <51038201+InspectorCaracal@users.noreply.github.com> Date: Fri, 5 Jan 2024 15:14:31 -0700 Subject: [PATCH 1/2] Update evmenu.py --- evennia/utils/evmenu.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/evennia/utils/evmenu.py b/evennia/utils/evmenu.py index ff2804415e..ecf21c2c0a 100644 --- a/evennia/utils/evmenu.py +++ b/evennia/utils/evmenu.py @@ -1206,7 +1206,16 @@ class EvMenu: else: # add a default white color to key table.append(f" |lc{raw_key}|lt|w{key}|n|le{desc_string}") - ncols = _MAX_TEXT_WIDTH // table_width_max # number of columns + + # check if the caller is using a screenreader + screenreader_mode = False + if session := getattr(self.caller, 'session', None): + screenreader_mode = session.protocol_flags.get("SCREENREADER") + # the caller doesn't have a session; check it directly + elif hasattr(self.caller, 'protocol_flags'): + screenreader_mode = self.caller.protocol_flags.get("SCREENREADER") + + ncols = 1 if screenreader_mode else _MAX_TEXT_WIDTH // table_width_max if ncols < 0: # no visible options at all From 6726663a464a3088baf45391918cdbc7dfefadda Mon Sep 17 00:00:00 2001 From: InspectorCaracal Date: Fri, 5 Jan 2024 15:49:23 -0700 Subject: [PATCH 2/2] fix session check --- evennia/utils/evmenu.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/evennia/utils/evmenu.py b/evennia/utils/evmenu.py index ecf21c2c0a..21a1059e3d 100644 --- a/evennia/utils/evmenu.py +++ b/evennia/utils/evmenu.py @@ -1209,8 +1209,8 @@ class EvMenu: # check if the caller is using a screenreader screenreader_mode = False - if session := getattr(self.caller, 'session', None): - screenreader_mode = session.protocol_flags.get("SCREENREADER") + if sessions := getattr(self.caller, 'sessions', None): + screenreader_mode = any(sess.protocol_flags.get("SCREENREADER") for sess in sessions.all()) # the caller doesn't have a session; check it directly elif hasattr(self.caller, 'protocol_flags'): screenreader_mode = self.caller.protocol_flags.get("SCREENREADER")