+
    Qin  c                  sJ   R t ^ RIHt RtRtRtRtRt^ RIH	t	H
t
 ^ RIt]P                  ! R	R
4       ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ]
'       d   ^RI H!t!  ! R R]PD                  4      t"R# )4Produces speech presentation for accessible objects.)annotationsz$Id$z
$Revision$z$Date$zrCopyright (c) 2005-2009 Sun Microsystems Inc.Copyright (c) 2010-2011 Orca TeamCopyright (c) 2011-2015 Igalia, S.L.ZLGPL)AnyTYPE_CHECKINGNAtspiz2.0)r   )debug)focus_manager)input_event_manager)messages)object_properties)settings)settings_manager)speech_generator)AXObject)AXTable)AXText)AXUtilities)scriptc                  s  a  ] tR t^At$ RtR]R&   ]R 4       t]R V 3R ll4       t]R V 3R ll4       t	R	 V 3R
 llt
]R V 3R ll4       t]R R l4       t]R V 3R ll4       t]R R l4       t]R V 3R ll4       t]R R l4       t]R V 3R ll4       t]R V 3R ll4       t]R V 3R ll4       t]R V 3R ll4       t]R V 3R  ll4       t]R! R" l4       t]R# V 3R$ ll4       tR% V 3R& llt]R' V 3R( ll4       t]R) V 3R* ll4       t]R+ V 3R, ll4       t]R- V 3R. ll4       t]R/ V 3R0 ll4       tR1 V 3R2 lltR3 R4 ltR5t V ;t!# )6SpeechGeneratorr    zscript.Script_scriptc                s   a  V 3R lpV# )zDecorator for logging.c                 s   < S! V / VB pR SP                    R2V.p\        P                  ! \        P                  VR4       V# )zWEB SPEECH GENERATOR: Z:T)__name__r   print_tokens
LEVEL_INFO)argsZkwargsresulttokensfuncs   *,  F/usr/lib/python3.14/site-packages/orca/scripts/web/speech_generator.pywrapperZ5SpeechGenerator.log_generator_output.<locals>.wrapperK   sF    4*6*F.t}}oQ?HFu//>M     )r   r   s   f r   log_generator_outputZ$SpeechGenerator.log_generator_outputG   s    	
 r   c                    V ^8  d   QhRRRR/#    objAtspi.Accessiblereturn	list[Any]r   Zformat   "r   __annotate__SpeechGenerator.__annotate__S        < <+; <	 <r   c                	sX   < VP                  R ^ 4      ^ 8  d   . # \        SV `  ! V3/ VB # index)getsuper_generate_old_ancestorsselfr#   r   	__class__   &&,r   r0   Z'SpeechGenerator._generate_old_ancestorsR   s0    88GQ!#Iw.s;d;;r   c               r    r!   r   r'   r(   r   r)   r*   Z   r+   r   c                	s   < VP                  R ^ 4      ^ 8  d*   \        P                  ! V\        P                  4      f   . # \
        SV `  ! V3/ VB # r,   )r.   r   find_ancestorr   is_listr/   _generate_new_ancestorsr1   r4   r   r7   Z'SpeechGenerator._generate_new_ancestorsY   sH    88GQ!#(>(>sKDWDW(X(`Iw.s;d;;r   c               r    r!   r   r'   r(   r   r)   r*   `   s     ( ('7 (I (r   c                	s  < V P                   P                  P                  V4      '       g   \        SV `  ! V3/ VB # . pVP                  R 4      pV'       d   V P                   P                  P                  V4      '       d   V P                   P                  P                  V4      pV P                   P                  P                  V4      pWV8w  d<   V P                   P                  P                  V4      '       g   \        SV `  V4      .p\        P                  ! V4      '       gs   \        P                  ! V4      '       gU   \        P                  ! V4      '       g9   \        P                  ! V4      '       g   \        P                  ! V4      '       d   V# V P                   P                  P                  W4      '       d   V# \         P"                  P$                  \         P"                  P&                  \         P"                  P(                  \         P"                  P*                  \         P"                  P,                  .VR&   \         P"                  P.                  \         P"                  P0                  \         P"                  P2                  \         P"                  P4                  \         P"                  P6                  \         P"                  P8                  .VR&   \         P"                  P:                  .VR&   \<        P>                  ! V\        P@                  4      '       d1   VR,          PC                  \         P"                  PD                  4       VPG                  \        SV `  ! V3/ VB 4       V# )priorObjZstop_at_rolesZ	skipRolesZstop_after_roles)$r   	utilitiesin_document_contentr/   _generate_ancestorsr.   Zget_document_for_object_generate_accessible_namer   Z	get_tabler   is_landmarkZis_math_relatedZis_tool_tipZis_status_barZis_item_for_editable_combo_boxr   RoleZDOCUMENT_WEBZEMBEDDEDZINTERNAL_FRAMEZMATHZMENU_BARZ	PARAGRAPHHEADINGZLABELLINKZ	LIST_ITEMZTEXTZTOOL_BARr   r5   Zis_editable_combo_boxappendZ	COMBO_BOXextend)r2   r#   r   r   Z	prior_objZ	prior_docZdocr3      &&,    r   r;   Z#SpeechGenerator._generate_ancestors`   sW   ||%%99#>>7.s;d;;HHZ(	//CCINN..FFyQI,,((@@EC(>(>(V(VWZ([([';C@A  %%'',,..s33**3//,,S11M<<!!@@PPM!&!8!8$zz22$zz88$zz$zz22	!4_
 #ZZ11"ZZ//"ZZ--"ZZ__"ZZ11"ZZ__.[ %*JJ$7$7#8 !!#{'H'HII$$UZZ%9%9:eg1#>>?r   c               r    r!   r   r'   r(   r   r)   r*      s     > >-= >) >r   c                	s^  < \         P                  ! 4       P                  R 4      '       d   . # . p\        P                  ! V4      pVP                  RR4      P                  4       pVR8X  d   \        P                  .pMcVR8X  d   \        P                  .pMJVR8X  d   \        P                  .pM1VR9   d   \        P                  .pMVR8X  d   \        P                  .pV'       d5   VP                  V P                  ! \        P                   3RV/VB 4       V# \"        SV `H  ! V3/ VB # )	onlySpeakDisplayedTextZhaspopupZfalseZdialogZgridZlistboxZtreer#   )ZmenuZtrue)r   get_managerget_settingr   Zget_attributes_dictr.   Zlowerr   ZHAS_POPUP_DIALOGZHAS_POPUP_GRIDZHAS_POPUP_LISTBOXZHAS_POPUP_MENUZHAS_POPUP_TREErB   voicer   SYSTEMr/   _generate_state_has_popup)r2   r#   r   r   ZattrsZ
popup_typer3      &&,   r   rI   Z)SpeechGenerator._generate_state_has_popup   s    '')556NOOI,,S1YYz7399;
!//0F6!--.F9$001F++--.F6!--.FMM$**%5%<%<N#NNOMw0===r   c               r    r!   r   r'   r(   r   r)   r*      s      .> 9 r   c                	s   \         P                  ! 4       P                  R 4      '       d   . # V P                  P                  P                  V4      '       g   . # \        P                  ! V4      '       d   . # V P                  P                  P                  V4      '       g   . # \        P                  .pVP                  V P                  ! \        P                  3RV/VB 4       V# rD   r#   )r   rE   rF   r   r9   r:   r   Zis_feed_articleZis_clickable_elementr	   ZSTATE_CLICKABLErB   rG   r   rH   r2   r#   r   r      &&, r   _generate_has_click_actionZ*SpeechGenerator._generate_has_click_action   s    '')556NOOI||%%99#>>I&&s++I||%%::3??I.>>?djj!1!8!8JcJTJKr   c               r    r!   r   r'   r(   r   r)   r*      s      E E4D EQZ Er   c                	s  < \         P                  ! 4       P                  R 4      '       d   . # V P                  P                  P                  V4      '       g   \        SV `  ! V3/ VB # \        P                  ! V4      '       g   . # V P                  V4      '       d   . # V\        P                  ! 4       P                  4       8w  dV   \        P                  ! WP                  R4      4      '       d   \        SV `  ! V3/ VB # VP                  R4      '       g   . # VP                  R4      p\        P                   ! WP                  R4      4      '       d
   VR8w  d   . # \        P"                  ! WP                  R4      4      '       d1   V P                  P%                  4       P'                  4       '       d   . # \        SV `  ! V3/ VB # )rD   roleZinMouseReview
formatTypebasicWhereAmI)r   rE   rF   r   r9   r:   r/    _generate_accessible_descriptionr   Zis_valid_prefer_description_over_namer   get_locus_of_focusr   Zis_dialog_or_alertr.   Zis_textis_linkZget_caret_navigatorZ'last_input_event_was_navigation_command)r2   r#   r   Zformat_typer3      &&, r   rR   Z0SpeechGenerator._generate_accessible_description   sb   '')556NOOI||%%99#>>7;CH4HH  %%I --c22I-++-@@BB--c88F3CDDw?LtLL88O,,	hh|,sHHV$455+:XIsHHV$455||//1YY[[Iw7DtDDr   c               r    r!   r   r'   r(   r   r)   r*      s      2B y r   c                	s   \         P                  ! 4       P                  R 4      '       d   . # V P                  P                  P                  V4      '       g   . # V P                  P                  P                  V4      '       g   . # \        P                  .pVP                  V P                  ! \        P                  3RV/VB 4       V# rK   )r   rE   rF   r   r9   r:   Zhas_long_descr	   ZSTATE_HAS_LONGDESCrB   rG   r   rH   rL   rM   r   _generate_has_long_descriptionZ.SpeechGenerator._generate_has_long_description   s    '')556NOOI||%%99#>>I||%%33C88I.AABdjj!1!8!8JcJTJKr   c               r    r!   r   r'   r(   r   r)   r*      s      )9 i r   c                	s   <a  \         P                  ! 4       P                  R 4      '       d   . # S P                  P                  P                  V4      '       g   \        SS `  ! V3/ VB # \        P                  ! V4      pV'       g   . # V 3R lpRP                  \        \        WC4      4      4      p\        P                  V,          .pVP                  S P                   ! \"        P$                  3RV/VB 4       V# )rD   c                s~   < \         P                  \        P                  ! V 4       R SP	                  V 4       24      # ) )strstripr   get_nameget_localized_role_name)xr2   s   &r   
obj_stringZ9SpeechGenerator._generate_has_details.<locals>.obj_string   s6    99 1 1! 45Qt7S7STU7V6WXYYr   z, r#   )r   rE   rF   r   r9   r:   r/   _generate_has_detailsr   get_detailsjoinZsetZmapr	   RELATION_HAS_DETAILSrB   rG   r   rH   )r2   r#   r   objsr^   Z
to_presentr   r3   s   f&,    r   r_   Z%SpeechGenerator._generate_has_details   s    '')556NOOI||%%99#>>70===&&s+I	Z YYs3z#89:
.CCjPQdjj!1!8!8JcJTJKr   c               r    r!   r   r'   r(   r   r)   r*      s      )9 i r   c                	s   \         P                  ! 4       P                  R 4      '       d   . # . pTpV'       d7   V'       g/   \        P                  ! V4      p\
        P                  ! V4      pK>  V'       g   . # \        P                  R,          .pVP                  V P                  ! \        P                  3RV/VB 4       . pV F  pVP                  V P                  V4      4       VP                  V P                  ! \        P                  3RV/VB 4       V P                  P                   P#                  V4      pVP%                  4       '       g   K  VP                  V4       VP                  V P                  ! \        P&                  3RV/VB 4       VP                  V P)                  V4      4       K  	  V# )rD    r#   )r   rE   rF   r   r`   r   
get_parentr	   rb   rB   rG   r   rH   rA   r\   r   r9   expand_eocsrZ   DEFAULT_generate_pause)r2   r#   r   rc   Z	containerr   ostrings   &&,     r   _generate_all_detailsZ%SpeechGenerator._generate_all_details   sV   '')556NOOI')	**95D ++I6II.CCbHIdjj!1!8!8JcJTJKAMM$66q9:MM$**%5%<%<N#NNO\\++77:F<<>>MM&!MM$**%5%=%=O3O$OPMM$..q12  r   c               r    r!   r   r'   r(   r   r)   r*     s     % %)9 %i %r   c                	sL  < \         P                  ! 4       P                  R 4      '       d   . # V P                  P                  P                  V4      '       g   \        S	V `  ! V3/ VB # \        P                  ! V4      pV'       g   . # VP                  R4      '       d   . # \        P                  ! 4       P                  4       '       d   . # \        P                  ! 4       pVP                  4       '       d   VP                  R4      '       d   . # VP                  4       '       dZ   V P                  P                  P!                  V4      '       d/   VP                  R4      R\"        P$                  ! V4      39  d   . # . pV EF  pV P                  P                  P'                  V4      ;'       g0    \(        P*                  ! V4      ;'       g    V P-                  V4      pVP/                  4       p\1        V4      ^8  d   VR,          R.,           pVP3                  \4        P6                  RP9                  V4      ,          4       VP;                  V P<                  ! \>        P@                  3RV/VB 4       VP;                  V PB                  ! V3/ VB 4       EK  	  V# )	rD   leavingstartOffset	endOffsetN:i    i   Nz...rX   r#   )"r   rE   rF   r   r9   r:   r/   _generate_details_forr   Zget_is_details_forr.   r   
in_say_allr   'last_event_was_forward_caret_navigation(last_event_was_backward_caret_navigationtreat_as_text_objectr   get_character_countrf   r   r[   r\   ZsplitlenrA   r	   ZRELATION_DETAILS_FORra   rB   rG   r   rH   rh   )
r2   r#   r   rc   Zmanagerr   ri   rj   Zwordsr3   
   &&,      r   ro   Z%SpeechGenerator._generate_details_for  s   '')556NOOI||%%99#>>70===--c2I88II$$&1133I%113::<<-AXAXI;;==||%%::3??xx$T63M3Mc3R,SSIA\\++77: 3 3h>O>OPQ>R 3 3//2 LLNE5zA~c
eW,MM+@@388E?RSMM$**%5%<%<N#NNOMM$..q9D9:  r   c               r    r!   r   r'   r(   r   r)   r*   A  s      H H7G HT] Hr   c                	s  < V P                   P                  P                  V4      '       g   \        SV `  ! V3/ VB # V P                   P                  P                  V4      '       d   \        P                  ! V4      '       d   \        P                  ! WP                  R 4      4      '       g   V P                   P                  P                  V4      '       gY   \        P                  ! WP                  R 4      4      '       g.   \        P                  ! WP                  R 4      4      '       g   . # WP                  R4      8X  d   \        P                  ! V4      '       d   . # \        P                  ! WP                  R 4      4      '       d   \         P"                  ! V4      '       d   . # \        SV `  ! V3/ VB # )rO   r8   )r   r9   r:   r/   #_generate_accessible_label_and_nameis_text_block_elementr   has_presentable_textr   r=   r.   is_documentis_dpubZis_suggestionis_editableZis_labelr   Zsupports_textr1   r4   r   rw   Z3SpeechGenerator._generate_accessible_label_and_name@  s6   ||%%99#>>7>sKdKK<<!!77<<**3//**30@AA<<))55c::&&sHHV,<==,,S((62BCCI((:&&;+B+B3+G+GIXXf%5668;Q;QRU;V;VIw:3G$GGr   c               r    r!   r   r'   r(   r   r)   r*   V  s     %> %>-= %>) %>r   c                	s  < V P                   P                  P                  V4      '       g   \        SV `  ! V3/ VB # V P                   P                  P                  V4      '       d   \        P                  ! V4      '       dp   \        P                  ! WP                  R 4      4      '       gE   \        P                  ! WP                  R 4      4      '       g   VP                  R4      '       g   . # \        P                  ! V4      '       d   VP                  R4      '       d   . # \        P                  ! V4      '       d   . # \        P                  ! WP                  R 4      4      '       d   VP                  R4      '       dx   VP                  R4      p\        P                  ! V4      '       g&   \         P"                  ! V\        P                  4      pV'       d   V\        P$                  ! V4      9   d   . # \         P&                  ! V4      '       d   V P)                  V4      '       d   \         P*                  ! V4      .pME\         P&                  ! V4      p\        P,                  ! V4      '       g   VP/                  4       pV.pVP1                  V P2                  ! \4        P6                  3RV/VB 4       V# \        SV `  ! V3/ VB # )rO   ZinFlatReviewrj   Z
ancestorOfr#   )r   r9   r:   r/   r<   rx   r   ry   r   r=   r.   r{   rU   Zhas_visible_captionZ	is_figureZ
is_captionr   r5   Zget_is_label_forr[   rS   Zget_descriptionZhas_explicit_namerZ   rB   rG   r   rg   )r2   r#   r   Zcaptionr   Znamer3   rJ   r   r<   Z)SpeechGenerator._generate_accessible_nameU  s   ||%%99#>>74SADAA<<!!77<<**3//**30@AA&&sHHV,<==88N++Is##(:(:I**3//I  hhv&677DHH\<R<Rhh|,G))'22"00+:P:PQ3+">">w"GG	 S!!11#66%-%=%=c%B$C((-"44S99::<DMM$**%5%=%=O3O$OPMw0===r   c               r    r!   r   r'   r(   r   r)   r*   ~  s     
 
.> 
9 
r   c                	sL  < V P                   P                  P                  V4      '       g   \        SV `  ! V3/ VB # V P                   P                  P                  V4      w  r4V'       d8   V.pVP                  V P                  ! \        P                  3R V/VB 4       V# . # )r#   )
r   r9   r:   r/   _generate_accessible_labelZinfer_label_forrB   rG   r   rg   )r2   r#   r   labelZ_objectsr   r3   rJ   r   r}   Z*SpeechGenerator._generate_accessible_label}  s    ||%%99#>>75cBTBB,,00@@E!&FMM$**%5%=%=O3O$OPM	r   c               r    r!   r   r'   r(   r   r)   r*     s     6 6%5 6) 6r   c                	s  < \         P                  ! 4       P                  R 4      '       d   . # VP                  R4      '       g   . # V P                  P
                  P                  V4      '       d   V P                  P
                  P                  \        P                  ! 4       P                  4       4      '       g8   R.pVP                  V P                  ! \        P                  3RV/VB 4       V# \        SV `8  ! V3/ VB # )rD   rl   rd   r#   )r   rE   rF   r.   r   r9   r:   r   rT   rB   rG   r   rH   r/   _generate_leaving)r2   r#   r   r   r3   rV   r   r   Z!SpeechGenerator._generate_leaving  s    '')556NOOIxx	""I<<!!55c::<<))==((*==?A A!#FMM$**%5%<%<N#NNOMw(555r   c               r    r!   r   r'   r(   r   r)   r*     s      4D QZ r   c                	s    . # Nr   )r2   r#   r   s   &&,r    _generate_new_radio_button_groupZ0SpeechGenerator._generate_new_radio_button_group  s	     	r   c               r    r!   r   r'   r(   r   r)   r*     s     " "0@ "Y "r   c                	s  < \         P                  ! 4       P                  R 4      '       g8   \         P                  ! 4       P                  R4      \        P                  8X  d   . # \
        P                  P                  \
        P                  P                  \
        P                  P                  R.pVP                  R\        P                  ! V4      4      pWC9  d   \        SV `8  ! V3/ VB # \        P                   ! \        P"                  ! V^ 4      4      pVf   \        P$                  ! W4      '       d0   \'        V P(                  P*                  P-                  V4      4      pMo\        P.                  ! W4      '       g   \        P0                  ! W4      '       d8   \'        \3        \        P4                  ! V\        P6                  4      4      4      pV'       g   . # \        P$                  ! V4      '       d   \8        P:                  ! V4      .pM6VR8X  d   \8        P<                  ! V4      .pM\8        P>                  ! V4      .pVPA                  V PB                  ! \D        PF                  3RV/VB 4       V# )rD   ZspeechVerbosityLevelZ	ROLE_FEEDrO   r#   )$r   rE   rF   r
   ZVERBOSITY_LEVEL_BRIEFr   r>   ZDESCRIPTION_LISTZLISTZLIST_BOXr.   r   get_roler/   _generate_number_of_childrenr   Zget_set_sizeZ	get_childZis_description_listru   r   r9   Zdescription_list_termsZis_list_boxr6   listZiter_childrenis_list_itemr   Zdescription_list_term_countZfeed_article_countZlist_item_countrB   rG   r   rH   )r2   r#   r   ZrolesrO   Zset_sizer   r3   rC   r   r   Z,SpeechGenerator._generate_number_of_children  s   '')556NOO**,889OP001I
 ,,$$ xx 1 1# 6777DtDD++H,>,>sA,FG..s99t||55LLSQR((33{7J7J37U7UtH$:$:3@X@X$YZ[I**3//!)!E!Eh!O PF[ 11(;<F..x89Fdjj!1!8!8JcJTJKr   c               r    )r"   r#   r$   r%   rY   r   r'   r(   r   r)   r*     s     < <+; < <r   c                	s   < V P                   P                  P                  V4      '       g   \        SV `  ! V3/ VB # \
        P                  ! V4      pV'       d   V# \        SV `  ! V3/ VB # r   )r   r9   r:   r/   r\   r   get_role_description)r2   r#   r   Zrole_descriptionr3   rV   r   r\   Z'SpeechGenerator.get_localized_role_name  sb    ||%%99#>>723?$??#88=##w.s;d;;r   c               r    r!   r   r'   r(   r   r)   r*     s     	8 	8	8 
		8r   c                	s   < V P                   P                  P                  V4      '       g   \        SV `  ! V3/ VB # V P                   P                  P                  V4      pV P                  ! V3/ VB # r   )r   r9   r:   r/   /_generate_real_active_descendant_displayed_textZactive_descendantZ_generate_text_content)r2   r#   r   Zradr3   rV   r   r   Z?SpeechGenerator._generate_real_active_descendant_displayed_text  sf     ||%%99#>>7J3WRVWWll$$66s;**37$77r   c               r    r!   r   r'   r(   r   r)   r*     s     Q Q-= Q) Qr   c           	     	s<  < V P                   P                  P                  V4      '       g   \        SV `  ! V3/ VB # WP                  R 4      8X  d   . # \        P                  ! V4      pV'       d8   V.pVP                  V P                  ! \        P                  3RV/VB 4       V# VP                  R\        P                  ! V4      4      pVP                  R4      pVP                  R4      pVP                  R^ 4      pVP                  R^4      p	V P                  ! V3/ VB p
V P                  ! V3/ VB '       g   V
'       d   V P	                  V
4      # . # . p\        P                   ! 4       p\"        P$                  ! V4      pV'       Ed6   V P                   P                  P'                  V4      '       Eg
   \(        P                   ! 4       P+                  4       '       d   V'       d   . # VP-                  4       '       d   V'       d   . # VP/                  4       '       dK   V P                   P                  P1                  V4      '       d    VR\2        P4                  ! V4      39  d   . # VP7                  V P8                  ! V3/ VB 4       VP                  V P                  ! \        P                  3RV/VB 4       EM8V'       d   V P                   P                  P;                  V4      '       d   \        P<                  ! V4      pV'       d   \"        P$                  ! V4      '       gh   VP?                  4       '       gR   VP7                  \@        PB                  4       VP                  V P                  ! \        P                  3RV/VB 4       EMbV\D        PF                  PH                  8X  Ed   W^,
          8X  g,   V P                   P                  PK                  V4      '       g   \"        PL                  ! V4      pV'       dp   VP7                  \@        PN                  RV P8                  ! V3/ VB RV/,          4       VP                  V P                  ! \        P                  3RV/VB 4       EM}VP7                  V P8                  ! V3/ VB 4       VP                  V P                  ! \        P                  3RV/VB 4       EM'V P                   P                  PQ                  V4      '       Ed   \"        PR                  ! \        P<                  ! V4      4      '       dT   VP7                  \T        PV                  4       VP                  V P                  ! \        P                  3RV/VB 4       EMxV P                   P                  PY                  V4      '       dm   VP7                  V P9                  V\D        PF                  PZ                  R	7      4       VP                  V P                  ! \        P                  3RV/VB 4       W^,
          8X  g,   V P                   P                  PK                  V4      '       gU   VP7                  V P8                  ! V3/ VB 4       VP                  V P                  ! \        P                  3RV/VB 4       MTVP7                  V P8                  ! V3/ VB 4       VP                  V P                  ! \        P                  3RV/VB 4       V
'       d   V P	                  V
4      VR
&   V# )r8   r#   rO   rm   rn   r-   totalNlevel)rO   :   r   N).r   r9   r:   r/   _generate_accessible_roler.   r   r   rB   rG   r   rH   r   Z_get_ancestor_with_usable_roleZ_should_speak_roler   rE   r   r|   Z)is_content_editable_with_embedded_objectsr   rp   rq   rr   rs   r   rt   rA   r\   rz   re   Zlast_event_was_caret_navigationr	   ZROLE_EDITABLE_CONTENTr   r>   r?   Zis_focusable_with_math_childZget_heading_levelZROLE_HEADING_LEVEL_SPEECHrU   Zis_imager   ZIMAGE_MAP_LINKZhas_useless_canvas_descendantIMAGE)r2   r#   r   Zroledescriptionr   rO   startendr-   r   Zancestor_with_usable_roleZmgrr|   Zparentr   r3   s   &&,            r   r   Z)SpeechGenerator._generate_accessible_role  sI   ||%%99#>>74SADAA ((:&&I"77<!0 1FMM$**%5%<%<N#NNOMxx 1 1# 67'hh{#!$!$$($G$G$Tt$T!&&s3d33(556OPPI!--/!--c2;<<))SSTWXX((*5577E	::<<	;;==<<))>>sCCtV%?%?%DEE	MM$66sCdCDMM$**%5%<%<N#NNOT\\33??DD((-Fk55f==::<</EEFdjj)9)@)@RcRTRSUZZ'''	!)?)?)\)\]`)a)a#55c:MM"3"M"M < <S ID IQ( #( ) MM$**-=-D-D"V#"VQU"VWMM$">">s"Kd"KLMM$**-=-D-D"V#"VQU"VW\\##++C00##H$7$7$<==h556djj)9)@)@RcRTRS<<))GGLLMM$">">sIYIY">"Z[MM$**-=-D-D"V#"VQU"VWAI%,,00MMcRRMM$">">s"Kd"KLMM$**-=-D-D"V#"VQU"VW MM$66sCdCDMM$**%5%<%<N#NNO$889RSF3Kr   c               r    r!   r   r'   r(   r   r)   r*   4  s     	? 	?.> 	?9 	?r   c                	s  < \         P                  ! V4      '       d1   VP                  R ^ 4      ^,           VP                  R^4      8  d   . # VP                  R4      R9  d   VP                  R4      V8X  d   . # \        SV `  ! V3/ VB # )r-   r   rP   r8   )rQ   ZdetailedWhereAmI)r   r   r.   r/   _generate_position_in_listr1   r4   r   r   Z*SpeechGenerator._generate_position_in_list3  sy    ##C((xx#a'$((7A*>>	88L!)NNxx
#s*	w1#>>>r   c               r    r!   r   r'   r(   r   r)   r*   @  s     ? ?.> ?9 ?r   c                	sj   < V P                   P                  4       '       g   . # \        SV `  ! V3/ VB # r   )r   in_focus_moder/   _generate_state_unselectedr1   r4   r   r   Z*SpeechGenerator._generate_state_unselected?  s0    ||))++Iw1#>>>r   c               r    r!   r   r'   r(   r   r)   r*   I  s      -= ) r   c                	s  < \         SV `  ! V3/ VB pV P                  P                  4       '       g   V# \        P
                  ! 4       P                  R 4      '       Ed   \        P                  ! V4      pV'       dF   VP                  V4       VP                  V P                  ! \        P                  3RV/VB 4       V# \        P                  ! V4      w  rVV P                  P                  P!                  V4      '       d`   VP                  \"        P$                  V^,           ,          4       VP                  V P                  ! \        P                  3RV/VB 4       V P                  P                  P'                  V4      '       d`   VP                  \"        P(                  V^,           ,          4       VP                  V P                  ! \        P                  3RV/VB 4       V# )ZspeakCellCoordinatesr#   )r/   _generate_real_table_cellr   r   r   rE   rF   r   Zget_label_for_cell_coordinatesrA   rB   rG   r   rH   Zget_cell_coordinatesr9   Zcell_row_changedr   Z	TABLE_ROWZcell_column_changedZTABLE_COLUMN)r2   r#   r   r   r~   ZrowZcolr3   rC   r   r   Z)SpeechGenerator._generate_real_table_cellH  sc   23?$?||))++M'')556LMM::3?Ee$djj)9)@)@RcRTRS33C8HC||%%66s;;h00C!G<=djj)9)@)@RcRTRS||%%99#>>h33sQw?@djj)9)@)@RcRTRSr   c               r    r!   r   r'   r(   r   r)   r*   _  s        #3  	  r   c           
     	s&  < V P                   P                  P                  V4      '       g=   R VR.p\        P                  ! \        P
                  VR4       \        S	V `  ! V3/ VB # RV.p\        P                  ! \        P
                  VR4       . pV P                   P                  P                  V4      '       d   \        P                  P                  VR&   MV P                   P                  P                  V4      '       d   \        P                  P                  VR&   MXV P                   P                  P                  WP                  R4      R7      '       d   \        P                  P                   VR&   RV9  da   V P                   P                  P#                  V4      pV P                   P                  P%                  V4      pV'       d
   V^ ,          MRVR&   VP                  R^ 4      pVP                  R	R4      pV P                   P                  P'                  WV4      w  VR
&   VR&   V'       g&   \)        \+        R \        S	V `  ! V3/ VB 4      4      pRVR.p\        P                  ! \        P
                  VR4       V# )zWEB:z=is not in document content. Calling default speech generator.Tz*WEB: Generating speech for document objectrO   rm   )Zoffsetr8   Nrn   ZlanguageZdialectc                s    V # r   r   r]      &r   Z<lambda>Z1SpeechGenerator.generate_speech.<locals>.<lambda>{  s    1r   z*WEB: Speech generation for document objectz	complete.i)r   r9   r:   r   r   r   r/   generate_speechrU   r   r>   r@   Zis_custom_imager   Ztreat_as_divr.   ZSECTIONZ!get_top_level_document_for_objectZget_prior_contextZ&get_language_and_dialect_for_substringr   filter)
r2   r#   r   r   r   ZdocumentZprior_contextr   r   r3   rv   r   r   ZSpeechGenerator.generate_speech_  s   ||%%99#>>c#bcFu//>7*37$77>D5++VT:<<!!))#.. ::??DL\\##33C88 ::++DL\\##00XXm=T0UU ::--DLT!||--OOPSTH LL22DDXNM3@}Q/dD*hh{B'LL""II#VYZ 	*Z$y/ &eg.Ec.RT.RSTF>[Q5++VT:r   c               r    )r"   contentsz,list[tuple[Atspi.Accessible, int, int, str]]r%   r&   r   r'   r(   r   r)   r*     s     ' '>' 
	'r   c                	s   V'       g   . # . pV P                   P                  P                  VR 4      pR\        V4      R.p\        P
                  ! \        P                  VR 4       \        V4       F  w  rVVw  rxrRV R2VRV RV	 RV
 R2.p\        P
                  ! \        P                  VR 4       VP                  R	V4      pVP                  R
\        V4      4      pV P                  ! V3RVRV	RV
R	VR
V/VB p\        V\        4      '       d   R p\        \        W4      4      pV'       g   K  V^ ,          '       g   K  VP                  V4       WrR&   K  	  V'       g   \        P                  ! 4       P!                  4       '       gA   \"        P                  ! 4       P%                  R4      '       d   VP'                  R4      R8X  d   Rp
M\(        P*                  p
WP,                  ! \.        P0                  3/ VB .pV# )Tz(WEB: Generating speech contents (length:Z)zITEM z: zstart: z, end: z 'Z'r-   r   rm   rn   rj   c                sJ    \        V \        4      ;'       d    V '       * '       * # r   )
isinstancer   r   r   r   is_not_empty_listZ<SpeechGenerator.generate_contents.<locals>.is_not_empty_list  s     *1d 3 = =A>>r   r8   ZspeakBlankLinesrP   Zancestorrd   )r   r9   Z filter_contents_for_presentationru   r   r   r   Z	enumerateZpopr   r   r   r   rA   r   rE   rp   r   rF   r.   r   ZBLANKrG   r   rg   )r2   r   r   r   r   ZiZcontentr#   r   r   rj   r-   r   Z	utterancer   s   &&,            r   generate_contentsZ!SpeechGenerator.generate_contents  s   
 I<<))JJ8UYZ<c(mSQ5++VT:#H-JA&-#CaSmSGE7'#bPQ*RSFu//>HHWa(EHHWc(m4E,,2!&2252>D22#(2,02I )T**? (9!EF	yYq\\i(#&Z  ." ((*5577&224@@ARSS((<(J6!jj)9)A)AJTJKFr   r   )"r   Z
__module__Z__qualname__Z__firstlineno____doc__Z__annotations__Zstaticmethodr   r0   r7   r;   rI   rN   rR   rW   r_   rk   ro   rw   r<   r}   r   r   r   r\   r   r   r   r   r   r   r   Z__static_attributes__Z__classcell__)r3   s   @r   r   r   A   s   >   < < < <( (T > >2  " E E<    &  > % %N H H( %> %>N 
 
 6 6    " "H< < 	8 	8 Q Qf 	? 	? ? ?  ,   D' 'r   r   )#r   Z
__future__r   Z__id__Z__version__Z__date__Z__copyright__Z__license__Ztypingr   r   ZgiZrequire_versionZgi.repositoryr   Zorcar   r   r   r   r	   r
   r   r   Zorca.ax_objectr   Zorca.ax_tabler   Zorca.ax_textr   Zorca.ax_utilitiesr   rd   r   r   r   r   r   <module>r      s   : ; #7  % 	   7E "    $  "  ! ! # !  )g	&66 g	r   