Text mode description of mutual better for screen readers

main
Bob Mottram 2025-11-24 18:50:19 +00:00
parent 262647575d
commit 3f21cdb597
29 changed files with 79 additions and 39 deletions

View File

@ -762,5 +762,6 @@
"THEATRE": "مسرح", "THEATRE": "مسرح",
"WORKSHOPS_SKILL_SHARING": "ورش العمل / مشاركة المهارات", "WORKSHOPS_SKILL_SHARING": "ورش العمل / مشاركة المهارات",
"Status": "حالة", "Status": "حالة",
"Warning: Possible dangerous link": "تحذير: رابط خطير محتمل" "Warning: Possible dangerous link": "تحذير: رابط خطير محتمل",
"Mutual": "مشترك"
} }

View File

@ -762,5 +762,6 @@
"THEATRE": "থিয়া", "THEATRE": "থিয়া",
"WORKSHOPS_SKILL_SHARING": "কর্মশালা / দক্ষতা ভাগ করে নেওয়া", "WORKSHOPS_SKILL_SHARING": "কর্মশালা / দক্ষতা ভাগ করে নেওয়া",
"Status": "অবস্থা", "Status": "অবস্থা",
"Warning: Possible dangerous link": "সতর্কতা: সম্ভাব্য বিপজ্জনক লিঙ্ক" "Warning: Possible dangerous link": "সতর্কতা: সম্ভাব্য বিপজ্জনক লিঙ্ক",
"Mutual": "পারস্পরিক"
} }

View File

@ -762,5 +762,6 @@
"THEATRE": "Teat", "THEATRE": "Teat",
"WORKSHOPS_SKILL_SHARING": "Tallers / compartició dhabilitats", "WORKSHOPS_SKILL_SHARING": "Tallers / compartició dhabilitats",
"Status": "Estat", "Status": "Estat",
"Warning: Possible dangerous link": "Avís: Possible enllaç perillós" "Warning: Possible dangerous link": "Avís: Possible enllaç perillós",
"Mutual": "Mútua"
} }

View File

@ -762,5 +762,6 @@
"THEATRE": "Theatr", "THEATRE": "Theatr",
"WORKSHOPS_SKILL_SHARING": "Gweithdai / Rhannu Sgiliau", "WORKSHOPS_SKILL_SHARING": "Gweithdai / Rhannu Sgiliau",
"Status": "Statws", "Status": "Statws",
"Warning: Possible dangerous link": "Rhybudd: Cyswllt peryglus posibl" "Warning: Possible dangerous link": "Rhybudd: Cyswllt peryglus posibl",
"Mutual": "Cydfuddiannol"
} }

View File

@ -762,5 +762,6 @@
"THEATRE": "Theater", "THEATRE": "Theater",
"WORKSHOPS_SKILL_SHARING": "Workshops / Fertigkeitsaustausch", "WORKSHOPS_SKILL_SHARING": "Workshops / Fertigkeitsaustausch",
"Status": "Status", "Status": "Status",
"Warning: Possible dangerous link": "Warnung: Möglicher gefährlicher Link" "Warning: Possible dangerous link": "Warnung: Möglicher gefährlicher Link",
"Mutual": "Gegenseitig"
} }

View File

@ -762,5 +762,6 @@
"THEATRE": "Θέατρο", "THEATRE": "Θέατρο",
"WORKSHOPS_SKILL_SHARING": "Εργαστήρια / κοινή χρήση δεξιοτήτων", "WORKSHOPS_SKILL_SHARING": "Εργαστήρια / κοινή χρήση δεξιοτήτων",
"Status": "Κατάσταση", "Status": "Κατάσταση",
"Warning: Possible dangerous link": "Προειδοποίηση: Πιθανός επικίνδυνος σύνδεσμος" "Warning: Possible dangerous link": "Προειδοποίηση: Πιθανός επικίνδυνος σύνδεσμος",
"Mutual": "Αμοιβαίος"
} }

View File

@ -762,5 +762,6 @@
"THEATRE": "Theatre", "THEATRE": "Theatre",
"WORKSHOPS_SKILL_SHARING": "Workshops / Skill sharing", "WORKSHOPS_SKILL_SHARING": "Workshops / Skill sharing",
"Status": "Status", "Status": "Status",
"Warning: Possible dangerous link": "Warning: Possible dangerous link" "Warning: Possible dangerous link": "Warning: Possible dangerous link",
"Mutual": "Mutual"
} }

View File

@ -762,5 +762,6 @@
"THEATRE": "Teatro", "THEATRE": "Teatro",
"WORKSHOPS_SKILL_SHARING": "Talleres / Experiencia de habilidades", "WORKSHOPS_SKILL_SHARING": "Talleres / Experiencia de habilidades",
"Status": "Estado", "Status": "Estado",
"Warning: Possible dangerous link": "Advertencia: Posible enlace peligroso" "Warning: Possible dangerous link": "Advertencia: Posible enlace peligroso",
"Mutual": "Mutual"
} }

View File

@ -762,5 +762,6 @@
"THEATRE": "تئاتر", "THEATRE": "تئاتر",
"WORKSHOPS_SKILL_SHARING": "کارگاه ها / اشتراک مهارت", "WORKSHOPS_SKILL_SHARING": "کارگاه ها / اشتراک مهارت",
"Status": "وضعیت", "Status": "وضعیت",
"Warning: Possible dangerous link": "هشدار: احتمال لینک خطرناک" "Warning: Possible dangerous link": "هشدار: احتمال لینک خطرناک",
"Mutual": "متقابل"
} }

View File

@ -762,5 +762,6 @@
"THEATRE": "Teatteri", "THEATRE": "Teatteri",
"WORKSHOPS_SKILL_SHARING": "Työpajat / taitojen jakaminen", "WORKSHOPS_SKILL_SHARING": "Työpajat / taitojen jakaminen",
"Status": "Status", "Status": "Status",
"Warning: Possible dangerous link": "Varoitus: Mahdollisesti vaarallinen linkki" "Warning: Possible dangerous link": "Varoitus: Mahdollisesti vaarallinen linkki",
"Mutual": "Keskinäinen"
} }

View File

@ -762,5 +762,6 @@
"THEATRE": "Théâtre", "THEATRE": "Théâtre",
"WORKSHOPS_SKILL_SHARING": "Ateliers / partage des compétences", "WORKSHOPS_SKILL_SHARING": "Ateliers / partage des compétences",
"Status": "Statut", "Status": "Statut",
"Warning: Possible dangerous link": "Avertissement : lien potentiellement dangereux" "Warning: Possible dangerous link": "Avertissement : lien potentiellement dangereux",
"Mutual": "Mutuelle"
} }

View File

@ -762,5 +762,6 @@
"THEATRE": "Tochadán", "THEATRE": "Tochadán",
"WORKSHOPS_SKILL_SHARING": "Ceardlanna / comhroinnt scileanna", "WORKSHOPS_SKILL_SHARING": "Ceardlanna / comhroinnt scileanna",
"Status": "Stádas", "Status": "Stádas",
"Warning: Possible dangerous link": "Rabhadh: Nasc contúirteach féideartha" "Warning: Possible dangerous link": "Rabhadh: Nasc contúirteach féideartha",
"Mutual": "Frithpháirteach"
} }

View File

@ -762,5 +762,6 @@
"THEATRE": "תֵאַטרוֹן", "THEATRE": "תֵאַטרוֹן",
"WORKSHOPS_SKILL_SHARING": "סדנאות / שיתוף מיומנות", "WORKSHOPS_SKILL_SHARING": "סדנאות / שיתוף מיומנות",
"Status": "סטָטוּס", "Status": "סטָטוּס",
"Warning: Possible dangerous link": "אזהרה: קישור מסוכן אפשרי" "Warning: Possible dangerous link": "אזהרה: קישור מסוכן אפשרי",
"Mutual": "הֲדָדִי"
} }

View File

@ -762,5 +762,6 @@
"THEATRE": "थिएटर", "THEATRE": "थिएटर",
"WORKSHOPS_SKILL_SHARING": "कार्यशालाएं / कौशल साझाकरण", "WORKSHOPS_SKILL_SHARING": "कार्यशालाएं / कौशल साझाकरण",
"Status": "स्थिति", "Status": "स्थिति",
"Warning: Possible dangerous link": "चेतावनी: संभावित खतरनाक लिंक" "Warning: Possible dangerous link": "चेतावनी: संभावित खतरनाक लिंक",
"Mutual": "आपसी"
} }

View File

@ -762,5 +762,6 @@
"THEATRE": "Teatro", "THEATRE": "Teatro",
"WORKSHOPS_SKILL_SHARING": "Seminari / condivisione delle competenze", "WORKSHOPS_SKILL_SHARING": "Seminari / condivisione delle competenze",
"Status": "Stato", "Status": "Stato",
"Warning: Possible dangerous link": "Attenzione: possibile collegamento pericoloso" "Warning: Possible dangerous link": "Attenzione: possibile collegamento pericoloso",
"Mutual": "Reciproca"
} }

View File

@ -762,5 +762,6 @@
"THEATRE": "劇場", "THEATRE": "劇場",
"WORKSHOPS_SKILL_SHARING": "ワークショップ /スキル共有", "WORKSHOPS_SKILL_SHARING": "ワークショップ /スキル共有",
"Status": "状態", "Status": "状態",
"Warning: Possible dangerous link": "警告: 危険なリンクの可能性があります" "Warning: Possible dangerous link": "警告: 危険なリンクの可能性があります",
"Mutual": "共通の"
} }

View File

@ -762,5 +762,6 @@
"THEATRE": "극장", "THEATRE": "극장",
"WORKSHOPS_SKILL_SHARING": "워크샵 / 기술 공유", "WORKSHOPS_SKILL_SHARING": "워크샵 / 기술 공유",
"Status": "상태", "Status": "상태",
"Warning: Possible dangerous link": "경고: 위험한 링크가 있을 수 있습니다" "Warning: Possible dangerous link": "경고: 위험한 링크가 있을 수 있습니다",
"Mutual": "상호간의"
} }

View File

@ -762,5 +762,6 @@
"THEATRE": "Şano", "THEATRE": "Şano",
"WORKSHOPS_SKILL_SHARING": "Karker / Parvekirina Skill", "WORKSHOPS_SKILL_SHARING": "Karker / Parvekirina Skill",
"Status": "Cî", "Status": "Cî",
"Warning: Possible dangerous link": "Hişyarî: Girêdaneke gengaz a xeternak" "Warning: Possible dangerous link": "Hişyarî: Girêdaneke gengaz a xeternak",
"Mutual": "Beramberî"
} }

View File

@ -762,5 +762,6 @@
"THEATRE": "Theater", "THEATRE": "Theater",
"WORKSHOPS_SKILL_SHARING": "Workshops / vaardigheden delen", "WORKSHOPS_SKILL_SHARING": "Workshops / vaardigheden delen",
"Status": "Status", "Status": "Status",
"Warning: Possible dangerous link": "Waarschuwing: Mogelijk gevaarlijke link" "Warning: Possible dangerous link": "Waarschuwing: Mogelijk gevaarlijke link",
"Mutual": "Wederzijds"
} }

View File

@ -758,5 +758,6 @@
"THEATRE": "Theatre", "THEATRE": "Theatre",
"WORKSHOPS_SKILL_SHARING": "Workshops / Skill sharing", "WORKSHOPS_SKILL_SHARING": "Workshops / Skill sharing",
"Status": "Status", "Status": "Status",
"Warning: Possible dangerous link": "Warning: Possible dangerous link" "Warning: Possible dangerous link": "Warning: Possible dangerous link",
"Mutual": "Mutual"
} }

View File

@ -762,5 +762,6 @@
"THEATRE": "Teatr", "THEATRE": "Teatr",
"WORKSHOPS_SKILL_SHARING": "Warsztaty / udostępnianie umiejętności", "WORKSHOPS_SKILL_SHARING": "Warsztaty / udostępnianie umiejętności",
"Status": "Status", "Status": "Status",
"Warning: Possible dangerous link": "Ostrzeżenie: Możliwe niebezpieczne łącze" "Warning: Possible dangerous link": "Ostrzeżenie: Możliwe niebezpieczne łącze",
"Mutual": "Wzajemne"
} }

View File

@ -762,5 +762,6 @@
"THEATRE": "Teatro", "THEATRE": "Teatro",
"WORKSHOPS_SKILL_SHARING": "Workshops / compartilhamento de habilidades", "WORKSHOPS_SKILL_SHARING": "Workshops / compartilhamento de habilidades",
"Status": "Estatuto", "Status": "Estatuto",
"Warning: Possible dangerous link": "Aviso: possível ligação perigosa" "Warning: Possible dangerous link": "Aviso: possível ligação perigosa",
"Mutual": "Mútua"
} }

View File

@ -762,5 +762,6 @@
"THEATRE": "Театр", "THEATRE": "Театр",
"WORKSHOPS_SKILL_SHARING": "Семинары / обмен навыками", "WORKSHOPS_SKILL_SHARING": "Семинары / обмен навыками",
"Status": "Статус", "Status": "Статус",
"Warning: Possible dangerous link": "Внимание: возможная опасная ссылка" "Warning: Possible dangerous link": "Внимание: возможная опасная ссылка",
"Mutual": "Взаимный"
} }

View File

@ -762,5 +762,6 @@
"THEATRE": "Ukumbi wa michezo", "THEATRE": "Ukumbi wa michezo",
"WORKSHOPS_SKILL_SHARING": "Warsha / Kushiriki kwa Ustadi", "WORKSHOPS_SKILL_SHARING": "Warsha / Kushiriki kwa Ustadi",
"Status": "Hali", "Status": "Hali",
"Warning: Possible dangerous link": "Onyo: Kiungo hatari kinachowezekana" "Warning: Possible dangerous link": "Onyo: Kiungo hatari kinachowezekana",
"Mutual": "Kuheshimiana"
} }

View File

@ -762,5 +762,6 @@
"THEATRE": "Tiyatro", "THEATRE": "Tiyatro",
"WORKSHOPS_SKILL_SHARING": "Çalıştaylar / Beceri Paylaşımı", "WORKSHOPS_SKILL_SHARING": "Çalıştaylar / Beceri Paylaşımı",
"Status": "Durum", "Status": "Durum",
"Warning: Possible dangerous link": "Uyarı: Olası tehlikeli bağlantı" "Warning: Possible dangerous link": "Uyarı: Olası tehlikeli bağlantı",
"Mutual": "Karşılıklı"
} }

View File

@ -762,5 +762,6 @@
"THEATRE": "Театр", "THEATRE": "Театр",
"WORKSHOPS_SKILL_SHARING": "Семінари / обмін навичками", "WORKSHOPS_SKILL_SHARING": "Семінари / обмін навичками",
"Status": "Статус", "Status": "Статус",
"Warning: Possible dangerous link": "Попередження: Можливе небезпечне посилання" "Warning: Possible dangerous link": "Попередження: Можливе небезпечне посилання",
"Mutual": "Взаємне"
} }

View File

@ -762,5 +762,6 @@
"THEATRE": "טעאַטער", "THEATRE": "טעאַטער",
"WORKSHOPS_SKILL_SHARING": "וואָרקשאָפּ / סקילז ייַנטיילונג", "WORKSHOPS_SKILL_SHARING": "וואָרקשאָפּ / סקילז ייַנטיילונג",
"Status": "סטאַטוס", "Status": "סטאַטוס",
"Warning: Possible dangerous link": "ווארענונג: מעגלעכער געפערלעכער פארבינדונג" "Warning: Possible dangerous link": "ווארענונג: מעגלעכער געפערלעכער פארבינדונג",
"Mutual": "קעגנצייַטיק"
} }

View File

@ -762,5 +762,6 @@
"THEATRE": "剧院", "THEATRE": "剧院",
"WORKSHOPS_SKILL_SHARING": "研讨会 /技能共享", "WORKSHOPS_SKILL_SHARING": "研讨会 /技能共享",
"Status": "地位", "Status": "地位",
"Warning: Possible dangerous link": "警告:可能存在危险链接" "Warning: Possible dangerous link": "警告:可能存在危险链接",
"Mutual": "相互的"
} }

View File

@ -1503,7 +1503,8 @@ def _get_post_title_announce_html(base_dir: str,
mitm: bool, mitm: bool,
mitm_servers: [], mitm_servers: [],
software_name: str, software_name: str,
mutuals_list: []) -> (str, str, str, str): mutuals_list: [],
is_text_mode: bool) -> (str, str, str, str):
"""Returns the announce title of a post containing names of participants """Returns the announce title of a post containing names of participants
x announces y x announces y
""" """
@ -1567,14 +1568,18 @@ def _get_post_title_announce_html(base_dir: str,
announce_display_name, False, announce_display_name, False,
translate) translate)
# add mutual icon to the display name # add mutual icon to the display name
mutuals_icon = '' mutual_prefix = ''
if announce_handle in mutuals_list: if announce_handle in mutuals_list:
mutuals_icon = '' if not is_text_mode:
mutual_prefix = ''
else:
mutual_prefix = translate['Mutual'] + ' '
_log_post_timing(enable_timing_log, post_start_time, '13.3.1') _log_post_timing(enable_timing_log, post_start_time, '13.3.1')
announce_display_name2 = mutual_prefix + announce_display_name
title_str += \ title_str += \
_announce_with_display_name_html(translate, post_json_object, _announce_with_display_name_html(translate, post_json_object,
announce_display_name + mutuals_icon, announce_display_name2,
nickname, announce_handle) nickname, announce_handle)
if mitm or announce_domain in mitm_servers: if mitm or announce_domain in mitm_servers:
@ -1934,7 +1939,8 @@ def _get_post_title_html(base_dir: str,
debug: bool, debug: bool,
mitm_servers: [], mitm_servers: [],
software_name: str, software_name: str,
mutuals_list: []) -> (str, str, str, str): mutuals_list: [],
is_text_mode: bool) -> (str, str, str, str):
"""Returns the title of a post containing names of participants """Returns the title of a post containing names of participants
x replies to y, x announces y, etc x replies to y, x announces y, etc
""" """
@ -1963,7 +1969,8 @@ def _get_post_title_html(base_dir: str,
container_class, mitm, container_class, mitm,
mitm_servers, mitm_servers,
software_name, software_name,
mutuals_list) mutuals_list,
is_text_mode)
return _get_post_title_reply_html(base_dir, return _get_post_title_reply_html(base_dir,
http_prefix, http_prefix,
@ -2648,12 +2655,16 @@ def individual_post_as_html(signing_priv_key_pem: str,
mitm_str = ' ' + mitm_warning_html(translate) mitm_str = ' ' + mitm_warning_html(translate)
# get the list of mutuals for the current account # get the list of mutuals for the current account
is_text_mode = text_mode_browser(ua_str)
mutuals_list = get_mutuals_of_person(base_dir, nickname, domain) mutuals_list = get_mutuals_of_person(base_dir, nickname, domain)
# add mutual icon to the display name # add mutual icon to the display name
mutuals_icon = '' mutual_prefix = ''
if actor_handle in mutuals_list: if actor_handle in mutuals_list:
mutuals_icon = '' if not is_text_mode:
mutual_prefix = ''
else:
mutual_prefix = translate['Mutual'] + ' '
if display_name: if display_name:
display_name = _enforce_max_display_name_length(display_name) display_name = _enforce_max_display_name_length(display_name)
@ -2668,7 +2679,7 @@ def individual_post_as_html(signing_priv_key_pem: str,
nickname + '?options=' + post_actor + \ nickname + '?options=' + post_actor + \
';' + str(page_number) + ';' + avatar_url + message_id_str + \ ';' + str(page_number) + ';' + avatar_url + message_id_str + \
'" tabindex="10" title="' + actor_handle + '">' + \ '" tabindex="10" title="' + actor_handle + '">' + \
'<span itemprop="author">' + display_name + mutuals_icon + \ '<span itemprop="author">' + mutual_prefix + display_name + \
mitm_str + '</span></a>\n' mitm_str + '</span></a>\n'
else: else:
if not message_id: if not message_id:
@ -2685,7 +2696,7 @@ def individual_post_as_html(signing_priv_key_pem: str,
nickname + '?options=' + post_actor + \ nickname + '?options=' + post_actor + \
';' + str(page_number) + ';' + avatar_url + message_id_str + \ ';' + str(page_number) + ';' + avatar_url + message_id_str + \
'" tabindex="10">' + \ '" tabindex="10">' + \
'@<span itemprop="author">' + actor_handle + mutuals_icon + \ '@<span itemprop="author">' + mutual_prefix + actor_handle + \
mitm_str + '</span></a>\n' mitm_str + '</span></a>\n'
# benchmark 9 # benchmark 9
@ -2891,7 +2902,8 @@ def individual_post_as_html(signing_priv_key_pem: str,
session, False, session, False,
mitm_servers, mitm_servers,
software_name, software_name,
mutuals_list) mutuals_list,
is_text_mode)
title_str += title_str2 title_str += title_str2
_log_post_timing(enable_timing_log, post_start_time, '14') _log_post_timing(enable_timing_log, post_start_time, '14')