%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/lib/python3/dist-packages/orca/scripts/web/__pycache__/
Upload File :
Create Path :
Current File : //usr/lib/python3/dist-packages/orca/scripts/web/__pycache__/speech_generator.cpython-312.pyc

�

g
f`���dZdZdZdZdZddlZejdd�dd	lmZdd
l	m
Z
ddl	mZddl	mZdd
l	m
Z
ddl	mZddl	mZddl	mZddlmZddlmZddlmZddlmZddlmZGd�dej6�Zy)z$Id$z
$Revision$z$Date$zrCopyright (c) 2005-2009 Sun Microsystems Inc.Copyright (c) 2010-2011 Orca TeamCopyright (c) 2011-2015 Igalia, S.L.�LGPL�N�Atspiz2.0)r)�debug)�
focus_manager)�messages)�object_properties)�settings)�settings_manager)�speech_generator)�
AXDocument)�AXObject)�AXTable)�AXText)�AXUtilitiesc�4��eZdZ�fd�Z�fd�Z�fd�Z�fd�Z�fd�Z�fd�Zd�Z	d�Z
�fd	�Zd
�Z�fd�Z
d�Z�fd
�Z�fd�Z�fd�Z�fd�Z�fd�Z�fd�Zd�Z�fd�Zd�Z�fd�Z�fd�Z�fd�Zd�Z�fd�Z�fd�Z�fd�Z�fd�Z�fd�Z �fd�Z!d �Z"�xZ#S)!�SpeechGeneratorc�$��t�|�|�y�N)�super�__init__)�self�script�	__class__s  ��C/usr/lib/python3/dist-packages/orca/scripts/web/speech_generator.pyrzSpeechGenerator.__init__2s���
���� �c�R��|jdd�dkDrgSt�|�|fi|��S�N�indexr)�getr�_generateOldAncestors�r�obj�argsrs   �rr z%SpeechGenerator._generateOldAncestors5s0����8�8�G�Q��!�#��I��w�,�S�9�D�9�9rc���|jdd�dkDr'|jjj|�sgSt	�|�|fi|��Sr)r�_script�	utilities�isListDescendantr�_generateNewAncestorsr!s   �rr(z%SpeechGenerator._generateNewAncestors;sH����8�8�G�Q��!�#��<�<�)�)�:�:�3�?��I��w�,�S�9�D�9�9rc�,��|jjj|�st�|�|fi|��S|jj�r'|t
j�j�k(rgSg}|jd�}|r�|jjj|�r�|jjj|�}|jjj|�}||k7r5|jjj|�st�|�-|�g}tj|�sv|jjj|�sO|jjj|�s*t!j"|�st!j$|�r|S|jjj'||�r|St(j*j,t(j*j.t(j*j0t(j*j2t(j*j4g|d<t(j*j6t(j*j8t(j*j:t(j*j<t(j*j>t(j*j@g|d<t(j*jBg|d<|jjjE|�r,|djGt(j*jH�|jKt�|�|fi|���|S)N�priorObj�stopAtRoles�	skipRoles�stopAfterRoles)&r%r&�inDocumentContentr�_generateAncestors�inSayAllr�
getManager�get_locus_of_focusr�getDocumentForObject�
_generateNamer�	get_table�
isLandmark�isMathr�is_tool_tip�
is_status_bar�isItemForEditableComboBoxr�Role�DOCUMENT_WEB�EMBEDDED�INTERNAL_FRAME�MATH�MENU_BAR�	PARAGRAPH�HEADING�LABEL�LINK�	LIST_ITEM�TEXT�TOOL_BAR�isEditableDescendantOfComboBox�append�	COMBO_BOX�extend)rr"r#�resultr*�priorDoc�docrs       �rr/z"SpeechGenerator._generateAncestorsBs�����|�|�%�%�7�7��<��7�-�c�:�T�:�:��<�<� � �"�s�m�.F�.F�.H�.[�.[�.]�']��I����8�8�J�'������.�.�@�@��J��|�|�-�-�B�B�8�L�H��,�,�(�(�=�=�c�B�C��3��t�|�|�'=�'=�'R�'R�SV�'W��'�/��4�5��� � ��%����&�&�1�1�#�6��<�<�)�)�0�0��5��*�*�3�/��,�,�S�1��M��<�<�!�!�;�;�C��J��M�$�z�z�6�6�$�z�z�2�2�$�z�z�8�8�$�z�z���$�z�z�2�2�	4��]��
#�Z�Z�1�1�"�Z�Z�/�/�"�Z�Z�-�-�"�Z�Z�_�_�"�Z�Z�1�1�"�Z�Z�_�_�.��[��#(�*�*�"5�"5�!6��
���<�<�!�!�@�@��E����$�$�U�Z�Z�%9�%9�:��
�
�e�g�0��=��=�>��
rc���tj|�r%|tj�j	�k7rgSt�|�|fi|��Sr)r
�is_validrr1r2r�_generateAllTextSelectionr!s   �rrQz)SpeechGenerator._generateAllTextSelectiono�F���� � ��%��
�0H�0H�0J�0]�0]�0_�)_��I��w�0��=��=�=rc���tj|�r%|tj�j	�k7rgSt�|�|fi|��Sr)r
rPrr1r2r�_generateAnyTextSelectionr!s   �rrTz)SpeechGenerator._generateAnyTextSelectionwrRrc�6�tj�jd�rgS|jjj|�sgSg}|jjj
|�}|dk(rtjg}nZ|dk(rtjg}nC|dk(rtjg}n,|dvrtjg}n|dk(rtjg}|r2|j|jtj fd|i|���|S)N�onlySpeakDisplayedText�dialog�grid�listbox)�menu�true�treer")r
r1�
getSettingr%r&r.�	popupTyper�HAS_POPUP_DIALOG�HAS_POPUP_GRID�HAS_POPUP_LISTBOX�HAS_POPUP_MENU�HAS_POPUP_TREErK�voicer�SYSTEM)rr"r#rLr^s     r�_generateHasPopupz!SpeechGenerator._generateHasPopups����&�&�(�3�3�4L�M��I��|�|�%�%�7�7��<��I����L�L�*�*�4�4�S�9�	��� ��/�/�0�F�
�&�
 ��-�-�.�F�
�)�
#��0�0�1�F�
�*�
*��-�-�.�F�
�&�
 ��-�-�.�F���M�M�*�$�*�*�%5�%<�%<�N�#�N��N�O��
rc�8�tj�jd�rgS|jjj|�sgS|jjj
|�rgS|jdd�s|j|d<d|d<|jjj|�r[|jjjdi|��g}|j|jtjfd|i|���|SgS)NrV�mode�	clickable�
stringTyper"�)r
r1r]r%r&r.�
isFeedArticler�_mode�isClickableElement�
formatting�	getStringrKrdrre�rr"r#rLs    r�_generateClickablez"SpeechGenerator._generateClickable�s����&�&�(�3�3�4L�M��I��|�|�%�%�7�7��<��I��<�<�!�!�/�/��4��I��x�x���%��:�:�D��L�(��\���<�<�!�!�4�4�S�9�7�d�l�l�-�-�7�7�?�$�?�@�F��M�M�*�$�*�*�%5�%<�%<�N�#�N��N�O��M��	rc�,��tj�jd�rgS|jjj|�st
�|�|fi|��Stj|�sgS|jjj|�rgS|jdtj|��}|tj�j�k7rY|tj j"tj j$fvrt
�|�|fi|��S|jd�sgS|jd�}|dk(rL|jjj'|�r'|jj(j*|fi|��S|tj j,k(r|dk7rgS|tj j.k(r&|jj0j3�rgSt
�|�|fi|��S)NrV�role�
inMouseReview�
formatType�
basicWhereAmI)r
r1r]r%r&r.r�_generateDescriptionr
rP�preferDescriptionOverNamer�get_rolerr2rr;�ALERT�DIALOG�isLiveRegion�liveRegionManager�generateLiveRegionDescriptionrFrD�caretNavigation�'last_input_event_was_navigation_command)rr"r#rtrvrs     �rrxz$SpeechGenerator._generateDescription�s�����&�&�(�3�3�4L�M��I��|�|�%�%�7�7��<��7�/��<�t�<�<�� � ��%��I��<�<�!�!�;�;�C�@��I��x�x��� 1� 1�#� 6�7���-�*�*�,�?�?�A�A���
�
�(�(�%�*�*�*;�*;�<�<��w�3�C�@�4�@�@��8�8�O�,��	��X�X�l�+�
���(�T�\�\�-C�-C�-P�-P�QT�-U�O�4�<�<�1�1�O�O�PS�\�W[�\�\��5�:�:�?�?�"�z�_�'D��I��5�:�:�?�?�"��|�|�+�+�S�S�U��I��w�+�C�8�4�8�8rc���tj�jd�rgS|jjj|�sgS|j
dd�s|j|d<d|d<|jjj|�r[|jjjdi|��g}|j|jtjfd|i|���|SgS)NrVrh�haslongdescrjr"rk)r
r1r]r%r&r.rrm�hasLongDescrorprKrdrrerqs    r�_generateHasLongDescz$SpeechGenerator._generateHasLongDesc�s����&�&�(�3�3�4L�M��I��|�|�%�%�7�7��<��I��x�x���%��:�:�D��L�*��\���<�<�!�!�-�-�c�2�7�d�l�l�-�-�7�7�?�$�?�@�F��M�M�*�$�*�*�%5�%<�%<�N�#�N��N�O��M��	rc�$���tj�jd�rgS�jjj|�st
���|fi|��S�jjj|�}|sgS�fd�}djtt||���}d|d<�jjjdi|��|zg}|j�jt j"fd|i|���|S)NrVc�|��tjtj|��d�j	|����S)N� )�str�stripr
�get_name�getLocalizedRoleName)�xrs �r�	objStringz6SpeechGenerator._generateHasDetails.<locals>.objString�s6����9�9�� 1� 1�!� 4�5�Q�t�7P�7P�QR�7S�6T�U�V�Vrz, �
hasdetailsrjr"rk)r
r1r]r%r&r.r�_generateHasDetails�	detailsIn�join�set�maprorprKrdrre)rr"r#�objsr��	toPresentrLrs`      �rr�z#SpeechGenerator._generateHasDetails�s�����&�&�(�3�3�4L�M��I��|�|�%�%�7�7��<��7�.�s�;�d�;�;��|�|�%�%�/�/��4����I�	W��I�I�c�#�i��"6�7�8�	�)��\��3�$�,�,�)�)�3�3�;�d�;�i�G�H���
�
�j�d�j�j�!1�!8�!8�J�c�J�T�J�K��
rc��tj�jd�rgS|jjj|�}|sYt
j||jjj�}|jjj|�}|sgSd|d<|jjjdi|��dzg}|j|jtjfd|i|���g}|D]�}|j|j!|��|j|jtjfd|i|���|jjj#|�}|j%�s��|j|�|j|jtj&fd|i|���|j|j)|����|S)NrVr�rj�r"rk)r
r1r]r%r&r�r
�
find_ancestor�
hasDetailsrorprKrdrrerIr��
expandEOCsr��DEFAULT�_generatePause)rr"r#r��	containerrL�o�strings        r�_generateAllDetailsz#SpeechGenerator._generateAllDetails�s����&�&�(�3�3�4L�M��I��|�|�%�%�/�/��4��� �.�.�s�D�L�L�4J�4J�4U�4U�V�I��<�<�)�)�3�3�I�>�D���I�)��\��3�$�,�,�)�)�3�3�;�d�;�b�@�A���
�
�j�d�j�j�!1�!8�!8�J�c�J�T�J�K����
	2�A��M�M�$�3�3�A�6�7��M�M�*�$�*�*�%5�%<�%<�N�#�N��N�O��\�\�+�+�6�6�q�9�F��<�<�>���M�M�&�!��M�M�*�$�*�*�%5�%=�%=�O�3�O�$�O�P��M�M�$�-�-�a�0�1�
	2��
rc���tj�jd�rgS|jjj|�st
�|�|fi|��S|jjj|�}|sgS|jd�rgS|jjj�\}}|dvs|jj�r|jd�rgS|dvrO|jjj|�r*|jd�dtj|�fvrgSg}d|jd�d	�}|D]�}|jjj|�xs|j!|�}	|	j#�}
t%|
�d
kDr	|
dd
dgz}
|j'|jj(j*di|��d
j-|
�z�|j/|j0t2j4fd|i|���|j/|j6|fi|�����|S)NrV�leaving��Down�Right�startOffset��Up�Left�	endOffset�
detailsforrh)rjrh�rz...r�r"rk)r
r1r]r%r&r.r�_generateDetailsFor�
detailsForr�lastKeyAndModifiersr0�treatAsTextObjectr�get_character_count�
displayedTextr��split�lenrIrorpr�rKrdrrer�)rr"r#r��lastKey�modsrL�objArgsr�r��wordsrs           �rr�z#SpeechGenerator._generateDetailsFors	����&�&�(�3�3�4L�M��I��|�|�%�%�7�7��<��7�.�s�;�d�;�;��|�|�%�%�0�0��5����I��8�8�I���I����.�.�B�B�D�
����(�(�D�L�L�,A�,A�,C����R_�I`��I��n�$��|�|�%�%�7�7��<��8�8�K�(��v�7Q�7Q�RU�7V�0W�W��	���!-�t�x�x��7G�H���	=�A��\�\�+�+�9�9�!�<�\��@Y�@Y�Z[�@\�F��L�L�N�E��5�z�A�~��a��
�e�W�,���M�M�;�$�,�,�1�1�;�;�F�g�F����RW��X�Y��M�M�*�$�*�*�%5�%<�%<�N�#�N��N�O��M�M�-�$�-�-�a�;�7�;�<�	=��
rc���|jjj|�st�
|�|fi|��S|jjj|�r�|jjj
|�sq|jjj|�sL|jjj|�s'|jjj|�sgS|jd�}||k(rgS|r)||jjj|�vrgStj|�}|jd�}|rL|rJ|rH|tj|�k(r0d|d|d|dg}tjtj |d�gS|jdtj"|��}|t$j&j(k(rQ|jjj+|�r,d|d	g}tjtj |d�gS|jjj-|�s%|jjj|�r-|jjj/�\}}	|d
vrgSt1j2|�rtj|�|k(rgS|r�|}
|jjj5|�s|
j7�}
|jjj9|�r%|jjj;|
�}
|
g}|j=|j>t@jBfd|i|���|St1jD|�rFtjF||jjjH�}|rt�
|�|fi|��St�
|�|fi|��S)Nr*�
ancestorOfzWEB: z's ancestorzhas same name as priorObjz. Not generating labelOrName.Trtzis popup menu for current item.��Home�Endr�r�r�r��Page_Up�	Page_Downr")%r%r&r.r�_generateLabelOrName�isTextBlockElementr6�
isDocument�isDPub�isContentSuggestionr�labelsForObjectr
r�r�printTokens�
LEVEL_INFOrzrr;�MENU�isPopupMenuForCurrentItem�$isContentEditableWithEmbeddedObjectsr�r�is_page_tab�hasExplicitNamer��shouldVerbalizeAllPunctuation�verbalizeAllPunctuationrKrdrr��is_check_boxr��
isGridCell)rr"r#r*�objName�
descendant�tokensrtr�r��namerL�gridCellrs             �rr�z$SpeechGenerator._generateLabelOrName8s5����|�|�%�%�7�7��<��7�/��<�t�<�<��<�<�!�!�4�4�S�9��<�<�)�)�4�4�S�9��<�<�)�)�4�4�S�9��<�<�)�)�0�0��5��<�<�)�)�=�=�c�B��I��8�8�J�'���(�?��I���D�L�L�$:�$:�$J�$J�3�$O�O��I��#�#�C�(���X�X�l�+�
��(�w�7�h�>O�>O�PX�>Y�3Y��z�=�#�?Z�� ?�A�F����e�.�.���=��I��x�x��� 1� 1�#� 6�7���5�:�:�?�?�"�t�|�|�'=�'=�'W�'W�X[�'\��s�$E�F�F����e�.�.���=��I��<�<�!�!�F�F�s�K��l�l�$�$�/�/��4� �L�L�2�2�F�F�H�M�G�T��`�`��	��"�"�8�,��1B�1B�8�1L�PW�1W��I���D��<�<�)�)�9�9�#�>��z�z�|���|�|�%�%�C�C�C�H��|�|�-�-�E�E�d�K���V�F��M�M�*�$�*�*�%5�%=�%=�O�3�O�$�O�P��M��#�#�C�(��-�-�c�4�<�<�3I�3I�3T�3T�U�H���w�3�H�E��E�E��w�+�C�8�4�8�8rc�\��|jjj|�st�|�|fi|��S|jjj|�r]|jjj
|�s8|jjj|�s|jd�sgS|jjj|�rgS|jjj|�r�|jd�r~|jd�}tj|�s$tj|tj�}|r2t|�|jjj!|�vrgS|jdtj"|��}|t$j&j(t$j&j*fvrt�|�|fi|��Stj,|��r	|jjj/|�rtj0|�g}n�|jjj3|�r'|jjj5|�sgStj,|�}|jjj5|�s|j7�}|g}|j9|j:t<j>fd|i|���|St�|�|fi|��S)N�inFlatReviewr�rtr") r%r&r.rr4r�r6r�r�hasVisibleCaption�isFigurer�
is_captionr
r��hash�labelTargetsrzrr;rJ�SPIN_BUTTONr�ry�get_description�isLinkr�r�rKrdrr�)rr"r#�captionrtrLr�rs       �rr4zSpeechGenerator._generateNametsb����|�|�%�%�7�7��<��7�(��5��5�5��<�<�!�!�4�4�S�9��<�<�)�)�4�4�S�9��<�<�)�)�0�0��5��8�8�N�+��I��<�<�!�!�3�3�C�8��I��<�<�!�!�*�*�3�/�D�H�H�\�4J��h�h�|�,�G��)�)�'�2�"�0�0��+�:P�:P�Q���4��9����(>�(>�(K�(K�G�(T�T��	��x�x��� 1� 1�#� 6�7���E�J�J�(�(�%�*�*�*@�*@�A�A��7�(��5��5�5����S�!��|�|�%�%�?�?��D�"�2�2�3�7�8�����'�'�.�.�s�3����/�/�?�?��D��	��(�(��-���|�|�-�-�=�=�c�B��:�:�<�D�����M�M�*�$�*�*�%5�%=�%=�O�3�O�$�O�P��M��w�$�S�1�D�1�1rc���|jjj|�st�|�|fi|��S|jjj|�rgS|jjj
|�\}}|r7|g}|j|jtjfd|i|���|St�|�|fi|��S)Nr")r%r&r.r�_generateLabelr��
inferLabelForrKrdrr�)rr"r#�label�objectsrLrs      �rr�zSpeechGenerator._generateLabel�s�����|�|�%�%�7�7��<��7�)�#�6��6�6��<�<�!�!�4�4�S�9��I����/�/�=�=�c�B���w���W�F��M�M�*�$�*�*�%5�%=�%=�O�3�O�$�O�P��M��w�%�c�2�T�2�2rc���tj�jd�rgS|jjj|�s%|jjj
|�rgSt�|� |fi|��S)NrV)	r
r1r]r%r&r�r�r�_generateNewNodeLevelr!s   �rr�z%SpeechGenerator._generateNewNodeLevel�sj����&�&�(�3�3�4L�M��I��<�<�!�!�4�4�S�9��l�l�$�$�+�+�C�0��I��w�,�S�9�D�9�9rc����tj�jd�rgS|jd�sgS|jj
j
|�r||jj
j
tj�j��s7dg}|j|jtjfd|i|���|St�|�8|fi|��S)NrVr�r�r")r
r1r]rr%r&r.rr2rKrdrrer�_generateLeaving)rr"r#rLrs    �rr�z SpeechGenerator._generateLeaving�s�����&�&�(�3�3�4L�M��I��x�x�	�"��I��<�<�!�!�3�3�C�8��<�<�)�)�;�;��'�'�)�<�<�>�@��T�F��M�M�*�$�*�*�%5�%<�%<�N�#�N��N�O��M��w�'��4�t�4�4rc��gSrrk�rr"r#s   r�_generateNewRadioButtonGroupz,SpeechGenerator._generateNewRadioButtonGroup�s	���	rc�
��tj�jd�s4tj�jd�tjk(rgSt
jjt
jjt
jjdg}|jdtj|��}||vrt�	|�8|fi|��S|jj j#tj$|d��}|��|jj j'|�r&|jj j)|�}ng|t
jjt
jjfvr1tj*|t,j.�D�cgc]}|��}}t1�}|sgS|jj j'|�rt3j4|�g}n2|dk(rt3j6|�g}nt3j8|�g}|j;|j<t>j@fd|i|���|Scc}w)NrV�speechVerbosityLevel�	ROLE_FEEDrtrr")!r
r1r]r	�VERBOSITY_LEVEL_BRIEFrr;�DESCRIPTION_LIST�LIST�LIST_BOXrr
rzr�_generateNumberOfChildrenr%r&�
getSetSize�	get_child�isDescriptionList�descriptionListTerms�
iter_childrenr�is_list_itemr�r�descriptionListTermCount�feedArticleCount�
listItemCountrKrdrre)
rr"r#�rolesrt�setsize�childrenr�rLrs
         �rr�z)SpeechGenerator._generateNumberOfChildren�s�����&�&�(�3�3�4L�M��)�)�+�6�6�7M�N��0�0�1��I�
���,�,���������$�$�����x�x��� 1� 1�#� 6�7���u���7�4�S�A�D�A�A��,�,�(�(�3�3�H�4F�4F�s�A�4N�O���?��|�|�%�%�7�7��<��<�<�1�1�F�F�s�K���%�*�*�/�/�5�:�:�+>�+>�?�?�'/�'=�'=�c�;�C[�C[�'\�]�!�A�]��]��(�m�G���I��<�<�!�!�3�3�C�8��7�7��@�A�F�
�[�
 ��/�/��8�9�F��,�,�W�5�6�F��
�
�j�d�j�j�!1�!8�!8�J�c�J�T�J�K��
��^s�	Jc�(�|j|fi|��Sr)�_generateRoleNamer�s   r�_generateTextRolez!SpeechGenerator._generateTextRole�s��%�t�%�%�c�2�T�2�2rc����|jjj|�st�|�|fi|��S|jjj|�}|r|St�|�|fi|��Sr)r%r&r.rr��getRoleDescription)rr"r#�roledescriptionrs    �rr�z$SpeechGenerator.getLocalizedRoleName�sh����|�|�%�%�7�7��<��7�/��<�t�<�<��,�,�0�0�C�C�C�H���"�"��w�+�C�8�4�8�8rc����|jjj|�st�|�|fi|��S|jjj|�}|j|fi|��Sr)r%r&r.r�*_generateRealActiveDescendantDisplayedText�realActiveDescendant�_generateDisplayedText)rr"r#�radrs    �rr	z:SpeechGenerator._generateRealActiveDescendantDisplayedTextsb����|�|�%�%�7�7��<��7�E�c�R�T�R�R��l�l�$�$�9�9�#�>��*�t�*�*�3�7�$�7�7rc�.��tj�jd�rgS|jjj|�st
�|�|fi|��S||jd�k(rgSg}|jjj|�}|r7|g}|j|jtjfd|i|���|S|jdtj|��}|j!�\}}||vrgS|jdd�}|jd�}	|jd�}
|jd	d
�}|jdd�}|s�t"j$j&t"j$j(t"j$j*t"j$j,t"j$j.t"j$j0t"j$j2t"j$j4g}
nt"j$j4g}
|�sH|
j7t"j$j8�|
j7t"j$j:�|
j7t"j$j<�|jd
�r|
j7d�|jdd�dk7rR|
j7t"j$j>�|
j7t"j$j@�|	s|
r{|
j7t"j$jB�|
j7t"j$jD�|
j7t"j$jF�|jjjI|�r$|
j7tj|��|dkDr)|
j7t"j$jJ�|jjjM|�r)|
j7t"j$jN�|jjjQ�\}}tSjT|�}|r�|jjjW|�s�|dvr|r|jjY�r|	rgS|dvrB|s@|jjj[|�r|
dt]j^|�fvrgS||
v�rV|j7|j`|fi|���|j|jtjfd|i|����n|r�|jjjc|�r�tjd|�}|�r�tSjT|��s�|dv�r�|j7tfjh�|j|jtjfd|i|����nS|t"j$jjk(�r||dz
k(s&|jjjm|��s|jjjo|�}|rj|j7tfjp|j`|fi|��|d�z�|j|jtjfd|i|����nv|j7|j`|fi|���|j|jtjfd|i|����n |jjjs|��r�tSjttjd|��rS|j7tvjx�|j|jtjfd|i|����n|jjj{|�rl|j7|ja|t"j$j|���|j|jtjfd|i|���||dz
k(s%|jjjm|�s�|j7|j`|fi|���|j|jtjfd|i|���nl||
vrh|jd�|k7rT|j7|j`|fi|���|j|jtjfd|i|���|jjj|�r'|jjj�|�s|Sd�}tj�||�}|rktj|�|k7rS||dz
k(s+tj�|�tj�|�k(r |j|j|��|S)NrVr*r"rt�forceFr�r�rr�total�r��ROLE_CONTENT_SUGGESTIONrv�	unfocusedrwr�r�r�)rt�level)rtc�Z�tj|�xstj|�Sr)r�
is_heading�is_link�r�s r�
speakRolesz5SpeechGenerator._generateRoleName.<locals>.speakRoles|s#���)�)�!�,�F��0C�0C�A�0F�Fr)Cr
r1r]r%r&r.rrrrrKrdrrer
rz�"_getEnabledAndDisabledContextRolesrr;�FOOTER�FORMrC�	MENU_ITEMrA�SECTION�REDUNDANT_OBJECT�UNKNOWNrI�
TABLE_CELLrF�STATICrEr��DOCUMENT_FRAMEr<r{�isAnchor�
ROW_HEADER�isMenuInCollapsedSelectElementr�r�r�is_editabler�r0r�rr�r�r��
get_parentr�ROLE_EDITABLE_CONTENTrB�isFocusableWithMathChild�headingLevel�ROLE_HEADING_LEVEL_SPEECHr��is_imager�IMAGE_MAP_LINK�hasUselessCanvasDescendant�IMAGEr7�isMathTopLevelr�r�)rr"r#rLrrt�enabled�disabledr�start�endrr�
doNotSpeakr�r��
isEditable�parentrr�ancestorrs                     �rrz!SpeechGenerator._generateRoleNames�����&�&�(�3�3�4L�M��I��|�|�%�%�7�7��<��7�,�S�9�D�9�9��$�(�(�:�&�&��I����,�,�0�0�C�C�C�H���%�&�F��M�M�*�$�*�*�%5�%<�%<�N�#�N��N�O��M��x�x��� 1� 1�#� 6�7�� �C�C�E�����8���I�����%�(������'���h�h�{�#������!�$������!�$����*�*�+�+��*�*�/�/��*�*�*�*��*�*�.�.��*�*�.�.��*�*�,�,��*�*�5�5��*�*�,�,�.�J� �*�*�,�,�-�J�����e�j�j�3�3�4����e�j�j�o�o�.����e�j�j�/�/�0��x�x��!��!�!�";�<��x�x��k�2�o�E��!�!�%�*�*�"6�"6�7��!�!�%�*�*�/�/�2����!�!�%�*�*�";�";�<��!�!�%�*�*�"9�"9�:��!�!�%�*�*�"2�"2�3��|�|�%�%�.�.�s�3��!�!�(�"3�"3�C�"8�9��q�y��!�!�%�*�*�"7�"7�8��|�|�%�%�D�D�S�I��!�!�%�*�*�/�/�2����.�.�B�B�D�
��� �,�,�S�1�
��d�l�l�4�4�Y�Y�Z]�^��-�-�d�t�|�|�?T�?T�?V�\a��	��.�(���<�<�)�)�;�;�C�@��4��)C�)C�C�)H�"I�I��I��:�%��
�
�7�d�7�7��D�t�D�E��
�
�j�d�j�j�)9�)@�)@�R�c�R�T�R�S�
�D�L�L�2�2�=�=�c�B��(�(��-�F��k�5�5�f�=��Z�[��
�
�/�E�E�F��
�
�j�d�j�j�)9�)@�)@�R�c�R�T�R�S�
�U�Z�Z�'�'�
'����	�!����)?�)?�)X�)X�Y\�)]����.�.�;�;�C�@����M�M�"3�"M�"M� 9�� 9� 9�#� F�� F�!&�Q(�#(�)��M�M�*�$�*�*�-=�-D�-D�"V�#�"V�QU�"V�W��M�M�";�$�";�";�C�"H�4�"H�I��M�M�*�$�*�*�-=�-D�-D�"V�#�"V�QU�"V�W�
�\�\�
#�
#�
*�
*�3�
/��#�#�H�$7�$7��$<�=��
�
�h�5�5�6��
�
�j�d�j�j�)9�)@�)@�R�c�R�T�R�S��<�<�)�)�D�D�S�I��M�M�$�";�";�C�e�j�j�FV�FV�";�"W�X��M�M�*�$�*�*�-=�-D�-D�"V�#�"V�QU�"V�W��E�A�I�%�T�\�\�-C�-C�-\�-\�]`�-a��M�M�";�$�";�";�C�"H�4�"H�I��M�M�*�$�*�*�-=�-D�-D�"V�#�"V�QU�"V�W�
��
#�����(<��(C��M�M�3�$�3�3�C�@�4�@�A��M�M�*�$�*�*�%5�%<�%<�N�#�N��N�O��<�<�!�!�(�(��-�d�l�l�6L�6L�6[�6[�\_�6`��M�	G��)�)�#�z�:����)�)�(�3�t�;��%�!�)�#�x�'8�'8��'=��AR�AR�S[�A\�'\��M�M�$�0�0��:�;��
rc�d�|jjj|�sgS|jd�dk7}|jjj	|�}tj||�}|sgS|g}|j|jtjfd|i|���|S)Nrv�detailedWhereAmIr")r%r&r.r�getTopLevelDocumentForObjectr�get_document_summaryrKrdrre)rr"r#�onlyIfFound�documentr�rLs       r�_generatePageSummaryz$SpeechGenerator._generatePageSummary�s����|�|�%�%�7�7��<��I��h�h�|�,�0B�B���<�<�)�)�F�F�s�K���0�0��;�G����I�����
�
�j�d�j�j�!1�!8�!8�J�c�J�T�J�K��
rc�2��|jjj|�st�|�|fi|��Sg}|jdd�}|jdd�}|jjj
|||�}|r|j|�|S)Nr�rr����)r%r&r.r�_generateExpandedEOCsrr�rI)rr"r#rLr�r��textrs       �rrBz%SpeechGenerator._generateExpandedEOCs�s�����|�|�%�%�7�7��<��7�0��=��=�=����h�h�}�a�0���H�H�[�"�-�	��|�|�%�%�0�0��k�9�M����M�M�$���
rc���tj|�r.|jdd�}|jdd�}|dz|krgS|jd�dvr|jd�|k(rgSt�|�|fi|��S)Nrrrrrv)rwr:r*)rr�rr�_generatePositionInList)rr"r#�thisObjIndex�objCountrs     �rrEz'SpeechGenerator._generatePositionInList�s�����#�#�C�(��8�8�G�Q�/�L��x�x���+�H��a��(�*��	��8�8�L�!�)N�N��x�x�
�#�s�*��	��w�.�s�;�d�;�;rc�\��|jj�sgSt�|�|fi|��Sr)r%�inFocusModer�_generateUnselectedCellr!s   �rrJz'SpeechGenerator._generateUnselectedCell�s-����|�|�'�'�)��I��w�.�s�;�d�;�;rc���t�|�|fi|��}|jj�s|St	j
�j
d��rltj|�}|rE|j|�|j|jtjfd|i|���|Stj|�\}}|jjj!|�rW|jt"j$|dzz�|j|jtjfd|i|���|jjj'|�rW|jt"j(|dzz�|j|jtjfd|i|���|S)N�speakCellCoordinatesr"r)r�_generateRealTableCellr%rIr
r1r]r�get_label_for_cell_coordinatesrIrKrdrre�get_cell_coordinatesr&�cellRowChangedr�	TABLE_ROW�cellColumnChanged�TABLE_COLUMN)rr"r#rLr��row�colrs       �rrMz&SpeechGenerator._generateRealTableCell�s_�����/��<�t�<���|�|�'�'�)��M��&�&�(�3�3�4J�K��:�:�3�?�E���
�
�e�$��
�
�j�d�j�j�)9�)@�)@�R�c�R�T�R�S��
��3�3�C�8�H�C���|�|�%�%�4�4�S�9��
�
�h�0�0�C�!�G�<�=��
�
�j�d�j�j�)9�)@�)@�R�c�R�T�R�S��|�|�%�%�7�7��<��
�
�h�3�3�s�Q�w�?�@��
�
�j�d�j�j�)9�)@�)@�R�c�R�T�R�S��
rc���|jjj|�st�|�|fi|��S|jjj||j
d��s|j|fi|��Stj|tj�}|rKtj|�r6|jjj|�s|j|�St�|�|fi|��S)Nr*)r%r&r.r�_generateTableCellRow�shouldReadFullRowrrMr
r�r�is_table_rowr��isLayoutOnly�generate)rr"r#rTrs    �rrWz%SpeechGenerator._generateTableCellRow�s�����|�|�%�%�7�7��<��7�0��=��=�=��|�|�%�%�7�7��T�X�X�j�=Q�R�.�4�.�.�s�;�d�;�;��$�$�S�+�*B�*B�C���8�$�$�S�)�$�,�,�2H�2H�2U�2U�VY�2Z��=�=��%�%��w�,�S�9�D�9�9rc
����|jjj|�s:d|dg}tjtj
|d�t
�	|�|fi|��Sd|g}tjtj
|d�g}|jd�dk(r|jd|�}�n$|jjj|�r+|jtjj|�}n�|jjj|�r+|jtjj|�}n�|jjj!||jd��	�r+|jtjj"|�}n#|j|j$|fi|��|�}d
|vrP|jjj'|�}|jjj)|�d|d
<|jdd�}|jdd
�}|jjj+|||�\|d<|d<|s$t-t/d�t
�	|�|fi|����}|j1||�d|dg}tjtj
|d�|S)NzWEB:z=is not in document content. Calling default speech generator.Tz*WEB: Generating speech for document objectrvr:�defaultr�)�offsetr*rr�rA�language�dialectc��|Srrkrs r�<lambda>z0SpeechGenerator.generateSpeech.<locals>.<lambda>�s��1�rz*WEB: Speech generation for document objectz	complete.)r%r&r.rr�r�r�generateSpeechr�
_overrideRoler�rr;rD�
isCustomImager/�
treatAsDivr�_getAlternativeRoler;�getPriorContext�!getLanguageAndDialectForSubstring�list�filter�_restoreRole)
rr"r#r�rL�oldRoler>r3r4rs
         �rrczSpeechGenerator.generateSpeech�sb����|�|�%�%�7�7��<��c�#b�c�F����e�.�.���=��7�)�#�6��6�6�>��D��
���%�*�*�F�D�9����8�8�L�!�%7�7��(�(��D�9�G�
�\�\�
#�
#�
*�
*�3�
/��(�(������$�?�G�
�\�\�
#�
#�
1�
1�#�
6��(�(����)9�)9�4�@�G�
�\�\�
#�
#�
.�
.�s�4�8�8�M�;R�
.�
S��(�(����);�);�T�B�G��(�(�)A��)A�)A�#�)N��)N�PT�U�G��T�!��|�|�-�-�J�J�3�O�H�#�|�|�5�5�E�E�h�O�PQ�R�D��������*���h�h�{�B�'���L�L�"�"�D�D�S�%�QT�U�	*��Z��$�y�/���&��e�g�.D�S�.Q�D�.Q�R�S�F����'�4�(�>��[�Q��
���%�*�*�F�D�9��
rc�b�t|�sgSg}|jjj|d�}dt|�dg}t	j
tj|d�t|�D]�\}}|\}}}	}
d|�d�|d|�d|	�d|
�d	�g}t	j
tj|d�|j|f||	|
|t|�d
�|��}t|t�rd�}tt||��}|s��|ds��|j|�||d
<��|s�|jjd��s7tj�j!d�r|j#d�dk(rd}
nt$j&}
|
|j(t*j,fi|��g}|S)NTz(WEB: Generating speech contents (length:�)zITEM z: zstart: z, end: z '�')r�r�r�rrc�.�t|t�xr|Sr)�
isinstancerjrs r�isNotEmptyListz8SpeechGenerator.generateContents.<locals>.isNotEmptyLists�� *�1�d� 3� =�A��>�>rrr*F)�treatInterruptedAsIn�speakBlankLinesrvr8r�)r�r%r&�filterContentsForPresentationrr�r��	enumeratercrrrjrkrIr0r
r1r]rr�BLANKrdrr�)
r�contentsr#rLr��i�contentr"r3r4r��	utterancerss
             r�generateContentsz SpeechGenerator.generateContents�s����8�}��I����<�<�)�)�G�G��RV�W��<�c�(�m�S�Q��
���%�*�*�F�D�9�#�H�-�	'�J�A�w�&-�#�C���V��a�S��m�S�G�E�7�'�#��b���PQ�*R�S�F����e�.�.���=�+��+�+��6�!&�#�f��s�8�}�6�04�6�I��)�T�*�?�!���	�!B�C�	��Y�q�\��
�
�i�(�#&��Z� �	'� ��|�|�$�$�%�$�@�&�1�1�3�>�>�?P�Q��(�(�<�(�J�6���!�����j�d�j�j�)9�)A�)A�J�T�J�K�F��
r)$�__name__�
__module__�__qualname__rr r(r/rQrTrfrrrxr�r�r�r�r�r4r�r�r�r�r�rr�r	rr?rBrErJrMrWrcr}�
__classcell__)rs@rrr0s����!�:�:�+�Z>�>��2�*9�B�$�*�>"�H:9�x*2�X
3�:�5� �#�L3�9�8�y�v�
�<�<��,:�$�L!rr)�__id__�__version__�__date__�
__copyright__�__license__�gi�require_version�
gi.repositoryr�orcarrrrr	r
r�orca.ax_documentr�orca.ax_objectr
�
orca.ax_tabler�orca.ax_textr�orca.ax_utilitiesrrrkrr�<module>r�su��,������7�
���	�����7�E�"�����"��!�!�'�#�!��)�m�&�6�6�mr

Zerion Mini Shell 1.0