Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

[RELEASED] UI Accessibility Plugin - UAP V1.0

Discussion in 'Assets and Asset Store' started by Holy-Manfred, May 3, 2017.

  1. mikrima

    mikrima

    Joined:
    Dec 20, 2013
    Posts:
    66
    Hi Iriley3,
    I'm afraid I'll have to look into this a little deeper and that will take some time.
    In the meantime, could you look into disabling the preprocessor define 'IOS_USENATIVESWIPES'?
    It's defined at the top of the file UAP_Accessibility manager. Just remove or comment the line, and build again.
    This isn't a fix, it just circumvents the native code that handles the input swipes and does the handling inside of Unity instead. This should work fine for the time being.
     
    lriley3 likes this.
  2. lriley3

    lriley3

    Joined:
    Feb 10, 2019
    Posts:
    4
    @mikrima Just tried what you suggested and that seems to be doing the trick for now. With that said I notice now that when the game starts, iOS’s voiceover begins to read the first text box. It will say “Possible text”, followed by the text label in my game. Is there a way that you may know of for voiceover to not read the “Possible Text” part and only start speaking the menu as I’ve built it in UAP? Thanks again for your help with this!!
     
  3. di-neo

    di-neo

    Joined:
    Sep 10, 2020
    Posts:
    1
    Hello - firstly many thanks for your work on this plugin. So far working with everything it's been great.

    There are a couple of issues however I wanted to run past you, and to see if they are possible to be resolved.

    1. With Google TalkBack having to be disabled, we've realised when our app requests camera permissions the user isn't able to be informed, as at that point its the native android prompt (e.g asking to allow/deny permissions). Are there any workarounds you can think of to support this best we can? Otherwise there's a native android prompt with nothing reading it to the user.

    2. The other problem we're facing right now, is when we have some UI (a top navigation bar) in DontDestroyOnLoad, and change to a different scene, the plugin is able to find everything within that scene just fine, but anything within the DontDestroyOnLoad becomes invisible to the screenreader, and isn't able to find any UI elements in our top navigation bar. Is there anything we can do here?
    Many thanks!
     
  4. BFAHK

    BFAHK

    Joined:
    Oct 9, 2020
    Posts:
    5
    Hi, first thank you for the plugin. But what if I want to play a particular audioclip instead of using the default text-to-speech function. Is there a way to do that using this plugin? If it requires coding, which class should I check out?
     
  5. dblaw

    dblaw

    Joined:
    Oct 16, 2020
    Posts:
    9
    Hi, question for the dev @mikrima or anyone knowledgeable about this asset.

    After implementing my accessibility features in my WebGL app, the "auto enable if screen reader is detected" does not seem to work on a Mac when Voiceover is enabled. Even more confusing, I went back to the WebGL Test example to double check things (link found here) and it no longer was speaking out loud. It was however using the green outlines and arrow navigation just fine. That was in Chrome. In Firefox, it was speaking just fine.

    But I had originally seen the demo on Chrome, and it was functional with a voice and everything. Why did it change?

    Can we have a step by step guide for actually verifying this plugin works on different platform targets? E.g., what settings to enable/disable, what to double check, when to start your screen reader application. This could help with some potential questions: Are there certain scenarios where "auto" won't work correctly? Are there weird caching things when using WebGL? There doesn't seem to be anything like this in the documentation, and it would be extremely helpful to have right now.

    Any help greatly appreciated.
     
  6. dblaw

    dblaw

    Joined:
    Oct 16, 2020
    Posts:
    9
    @mikrima upon creating a simplistic proof of concept native Unity app, it appears the "automatic detection" does not work here either. Are there known issues with specific versions of Unity/macOS/VoiceOver?

    Working with Unity 2019.4.1f1, MacOS Catalina 10.15.6, VoiceOver Utility version 10 (708.14)
     
  7. daterre

    daterre

    Joined:
    Jul 30, 2012
    Posts:
    41
    Hi, I'm encountering an issue with the autodetection on iOS.

    When I activate accessibility mode from a menu shortcut or via the triple-click gesture, UAP is turned on and then immediately off.

    As can be seen from the following XCode log, the first change is triggered by a UI button, the second by UAP_AccessibilityManager.Update.

    Any help greatly appreciated...


    Code (CSharp):
    1. ACCESSIBILITY state changed to True
    2. MyLovelyGame.Accessibility:StateChanged(Boolean)
    3. OnAccessibilityModeChanged:Invoke(Boolean)
    4. MyLovelyGame.MenuShared:Options_Toggle_Accessibility(Boolean)
    5. UnityEngine.Events.UnityAction`1:Invoke(T0)
    6. UnityEngine.Events.UnityEvent`1:Invoke(T0)
    7. UnityEngine.EventSystems.EventFunction`1:Invoke(T1, BaseEventData)
    8. UnityEngine.EventSystems.ExecuteEvents:Execute(GameObject, BaseEventData, EventFunction`1)
    9. InControl.InControlInputModule:ProcessTouchPress(PointerEventData, Boolean, Boolean)
    10. InControl.InControlInputModule:ProcessTouchEvents()
    11. (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)
    12.  
    13. 2020-12-10 16:45:06.028384+0200 lovelygame[765:159360] Creating client/daemon connection: 27BFC4AE-4C04-41BA-B5F8-BC7B03EE73ED
    14. 2020-12-10 16:45:06.063481+0200 lovelygame[765:159360] Got the query meta data reply for: com.apple.MobileAsset.MacinTalkVoiceAssets, response: 0
    15. 2020-12-10 16:45:06.064781+0200 lovelygame[765:159360] Consumed extension
    16. 2020-12-10 16:45:06.070758+0200 lovelygame[765:159360] Got the query meta data reply for: com.apple.MobileAsset.MacinTalkVoiceAssets, response: 0
    17. 2020-12-10 16:45:06.194374+0200 lovelygame[765:159443] Got the query meta data reply for: com.apple.MobileAsset.VoiceServicesVocalizerVoice, response: 0
    18. 2020-12-10 16:45:06.206772+0200 lovelygame[765:159443] Consumed extension
    19. ACCESSIBILITY state changed to False
    20. MyLovelyGame.Accessibility:StateChanged(Boolean)
    21. OnAccessibilityModeChanged:Invoke(Boolean)
    22. UAP_AccessibilityManager:Update()
    23. (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)
    24.  
    25. 2020-12-10 16:45:06.352275+0200 lovelygame[765:159443] Got the query meta data reply for: com.apple.MobileAsset.VoiceServices.VoiceResources, response: 0
    26. 2020-12-10 16:45:06.354493+0200 lovelygame[765:159443] Consumed extension

    [Edit] This happens also using the triple-click gesture so it doesn't seem to be related to GUI or other host app code:


    Code (CSharp):
    1.  
    2. ACCESSIBILITY state changed to True
    3. MyLovelyGame.Accessibility:StateChanged(Boolean)
    4. OnAccessibilityModeChanged:Invoke(Boolean)
    5. UAP_AccessibilityManager:ToggleAccessibility_Internal()
    6. UAP_AccessibilityManager:UpdateThreeFingerTapDetection()
    7. UAP_AccessibilityManager:Update()
    8.  
    9. (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)
    10.  
    11. 2020-12-10 17:31:26.924640+0200 lovelygame[878:171703] Creating client/daemon connection: 2FE084BD-4793-4827-876D-D6AFF166918D
    12. 2020-12-10 17:31:26.959841+0200 lovelygame[878:171703] Got the query meta data reply for: com.apple.MobileAsset.MacinTalkVoiceAssets, response: 0
    13. 2020-12-10 17:31:26.962020+0200 lovelygame[878:171703] Consumed extension
    14. 2020-12-10 17:31:26.967269+0200 lovelygame[878:171703] Got the query meta data reply for: com.apple.MobileAsset.MacinTalkVoiceAssets, response: 0
    15. ACCESSIBILITY state changed to False
    16. MyLovelyGame.Accessibility:StateChanged(Boolean)
    17. OnAccessibilityModeChanged:Invoke(Boolean)
    18. UAP_AccessibilityManager:Update()
    19.  
    20. (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)
    21.  
    22. 2020-12-10 17:31:27.098106+0200 lovelygame[878:172064] Got the query meta data reply for: com.apple.MobileAsset.VoiceServicesVocalizerVoice, response: 0
    23. 2020-12-10 17:31:27.113809+0200 lovelygame[878:172064] Consumed extension
    24. 2020-12-10 17:31:27.270995+0200 lovelygame[878:172064] Got the query meta data reply for: com.apple.MobileAsset.VoiceServices.VoiceResources, response: 0
    25. 2020-12-10 17:31:27.273299+0200 lovelygame[878:172064] Consumed extension
    26.  
     
    Last edited: Dec 10, 2020
  8. Arun_Jaya

    Arun_Jaya

    Joined:
    Sep 23, 2020
    Posts:
    1
    Hello,

    Recently I have purchased your product for my app. I have integrated with my application. It is working only if I enable the "Enable after app install". Can you please help me to enable Unity accessibility plugin only if IOS Voice over or Android talk back is enabled.
     
  9. kathy12345

    kathy12345

    Joined:
    Jun 12, 2016
    Posts:
    9
    Hi @mikrima,
    Your UAP plug-in is wonderful, and even life-changing for some people. I purchased 2 seats to it earlier this year.

    I released a game on Android, iOS and Windows on 9 December. I made the mistake of testing the screen readers extensively on Android and iOS, and not on Windows.

    I advertised it on Steam as accessible to people with vision impairment and a buyer has said they don’t get any sound. I checked a Windows build and I don’t get any sound either.

    My programmer and I have tried all sorts of things and we don’t know what else to try. We think there must be a missing library in the build? I’m not sure what information to provide. We are working in 32-bit Windows. I am using Unity 2018.4.28f1 as the game was in production for 3 years.

    As you mentioned earlier that you are not getting notifications for this thread, I have also sent an email to 'support@metalpopgames.com'. I hope this was the right thing to do.
     
  10. mikrima

    mikrima

    Joined:
    Dec 20, 2013
    Posts:
    66
    Hi @kathy12345,
    thank you for reaching out via eMail - the notifications for this thread sometimes work, but in this case they did not.
    I'm looking into this right now and checking if there's anything unusual or missing when building a standalone build in Windows. I hope I have an answer for you very soon.
     
  11. silver-chapelier-fou

    silver-chapelier-fou

    Joined:
    Apr 1, 2020
    Posts:
    2
    Hello o/
    thanks again for this incredible plugin: it's great to be able to make games accessible for people with disabilities.
    However, I have a question: I would like to know how we can give a value false to m_AutoTurnOnIfScreenReaderDetected ?

    Here is the situation :
    In the perception that not all players have NVDA, VoiceOver or TalkBack, I would like to remove the accents from the French words in order to make the texts audible without changing them completely.
    Is it possible please ?
     
    Last edited: Jan 6, 2021
  12. mikrima

    mikrima

    Joined:
    Dec 20, 2013
    Posts:
    66
    @kathy12345,
    I've tested a little bit with the plugin on Windows and didn't run into problems... other than that the plugin on this platform doesn't automatically turn on (because it cannot detect a screen reader). Is it possible that accessibility is simply turned off? For a quick test, could you turn on the accessibility at game start via script using UAP_AccessibilityManager.ToggleAccessibility() and see if that works?

    I am planning to include a simple keyboard shortcut (Shift-Windows-A and Shift-Cmd-A) in the next release, to allow a simple toggle of accessibility on Windows and Mac. This isn't in the current version, but if that would be of help to you, let me know, and I can send you the appropriate code.
     
  13. mikrima

    mikrima

    Joined:
    Dec 20, 2013
    Posts:
    66
    Hi @silver-chapelier-fou ,
    could you explain a bit further what happens with the accents? You can disable the auto-turn-on option in the plugin's settings - but I think that isn't what you want to do?
     
  14. kathy12345

    kathy12345

    Joined:
    Jun 12, 2016
    Posts:
    9
    Hi Mikrima, thanks for responding over the Christmas break.
    We have our own toggle button in the game to turn the screen reader on and off.
    When we play in Unity, we get the green selection frame and the voice.
    When we play in Steam, we get the green selection frame but no voice.
    We have a free demo of the game if you want to see what happens: https://store.steampowered.com/app/1443500/Frogs_Princess/
    I could add you as a user on the Unity project if you would like to see it.
    Cheers
    Kathy Smart
     
  15. kathy12345

    kathy12345

    Joined:
    Jun 12, 2016
    Posts:
    9
    Sorry, I should have said: it is not only when we play in Steam, it is when we play any Windows standalone build, that we only get the green selection frame and not the voice.
     
  16. tatsuya-kida

    tatsuya-kida

    Joined:
    Jan 13, 2014
    Posts:
    7
    Hi mikrima,

    I have a question about how to support VoiceOver in iOS with UAP.

    The following video shows the difference in VoiceOver behavior between (1) UAP + Unity, and (2) Native Swift.


    UAP does not support moving the cursor on a slide.

    I would like to implement Swift Native like behavior in UAP.

    Is it possible?

    My environment is as follows.
    - Mac OS BigSur
    - Unity 2020.1.16f1
    - iOS 14.2
     
    Last edited: Jan 14, 2021
  17. silver-chapelier-fou

    silver-chapelier-fou

    Joined:
    Apr 1, 2020
    Posts:
    2
    Hello o/

    someone has a problem with the UAP_AccessibilityManager.SetLanguage ?

    Because even the examples given by the plugin (in English) speak with a French accent. :s
     
  18. dariuspowell

    dariuspowell

    Joined:
    Jun 11, 2015
    Posts:
    28
    Hi. I'm glad I came across this asset. Simple to get started but I'm finding when I export to Android phone with screenreader, I just hear 'Game View' when tapping the screen. When testing in Editor all is fine but on the phone I can't seem to progress. Any ideas what I'm doing wrong?

    Many thanks
    Darius
     
    ericdesjardins likes this.
  19. tatsuya-kida

    tatsuya-kida

    Joined:
    Jan 13, 2014
    Posts:
    7
    Hi,

    Sorry for the consecutive posts.

    I tried to build the UAP/Examples/UI Navigation Example in my environment, but the cursor does not move.


    If you have any idea why this is happening, please let me know.

    Sometimes it works and sometimes it doesn't.
     
  20. tatsuya-kida

    tatsuya-kida

    Joined:
    Jan 13, 2014
    Posts:
    7
    I found how to enable the moving cursor with horizontal flicking.


    But can't find how to enable double-tap.
     
  21. dariuspowell

    dariuspowell

    Joined:
    Jun 11, 2015
    Posts:
    28
    Hi. I've managed to figure out where I was going wrong. It was to do with not having TalkBack setup properly. My next question is about scrolling. Our app has scrolling pages and I can see that the user has to pause or disable the plug-in before they can scroll. Is that correct?

    I managed to disable TalkBack by tapping with three fingers and could then scroll. Enabling again took the scroll view back to the top to show/read the first label.

    In the manual, I can see the function UAP_AccessibilityManager::pauseAccessibility() but I don't understand how that would help.

    Apologies if I'm missing something. Any help would be appreciated.
    Darius
     
    ericdesjardins likes this.
  22. jameswest9215

    jameswest9215

    Joined:
    Mar 23, 2018
    Posts:
    11
    For some reason, even when using NVDA, anytime it reads a number it reads it super quickly.
    For example, when not in unity it would read "nine" as "nine", but in Unity it reads it as "nn" because of how fast it's speaking.
    I'm looking through what documentation I can but I can't see anything on number settings.
     
  23. JC-SAIC

    JC-SAIC

    Joined:
    Mar 30, 2020
    Posts:
    1
    Hi, I am trying to get this going on a WebGL project. I find that it is not recognizing the windows narrator or NVDA. Anything i need to do to get that working?

    Additionally when i am running the UAP with an active reader, the arrow key inputs never reach the WebGL app. The reader is using the inputs and trying to do things in the web browser instead of the game. Tab and shift Tab still work though. Any suggestions on how to get the arrow keys to work ingame and not on the reader?
     
  24. dblaw

    dblaw

    Joined:
    Oct 16, 2020
    Posts:
    9
    Hello everyone,

    I have an issue with rich text formatted TMP Text objects. It seems that the screen reader is reading the <tags> in the text! Didn't realize this until I styled everything. Any easy way around this? Didn't see anything in the UAP settings.

    First- is there any reason these should be left in, in regards to accessibility guidelines? If not, and if there aren't any suggested quick fixes... I might have to whip something up. If I come up with something I'll share back here.
     
  25. mikrima

    mikrima

    Joined:
    Dec 20, 2013
    Posts:
    66
    Update on the plugin not running with Windows Standalone builds - there seems to be an issue during plugin initialization. I'm currently debugging which step of the init is skipped, and will release an update with a fix asap.
     
  26. mikrima

    mikrima

    Joined:
    Dec 20, 2013
    Posts:
    66
    Another update on the standalone build issue. I found the bug - it seems that at some point the meta data file of one of the dlls used for text-to-speech has gotten corrupted. As a result, the dll is not included when a build is created.
    This can easily be fixed with a single checkbox.
    I am preparing an update to the asset store plugin in the next few days, but in the meantime, here's the fix:

    In the UAP/Plugins/x86_64 folder, find the file nvdaControllerClient, and with it selected, activate the checkbox ‘x86_x64’ in the Platform setting in the inspector (see screenshot below). This will make sure that the dll is included whenever you create a standalone build.

    upload_2021-2-9_17-51-22.png
     
  27. mikrima

    mikrima

    Joined:
    Dec 20, 2013
    Posts:
    66
    @JC-SAIC Unfortunately, when running Unity inside a browser using WebGL, Unity has no access to the user's computer or running processes (nor should websites have that kind of access). This can't be circumvented by the plugin. This means in a WebGL build auto-detection of a screen reader cannot work.
    Any WebGL apps built with Unity and UAP are considered self-voicing, which means they handle both the input and the text-to-speech generation. Therefore, other screen readers need to be paused so that they don't swallow the inputs and Unity can properly receive them.
     
  28. mikrima

    mikrima

    Joined:
    Dec 20, 2013
    Posts:
    66
    @dblaw There's a function inside the plugin which tries to remove the formatting when it finds it. Depending on how elaborate the styling, it might not catch everything. But it is very easy to extend the function to catch everything that you're using.

    Have a look inside UAP_BaseElement.cs, in the function FilterText(string text). It currently filters the most common formatting tags, such as <b>, </b>, <i>, </i> etc
     
    dblaw likes this.
  29. mikrima

    mikrima

    Joined:
    Dec 20, 2013
    Posts:
    66
    @jameswest9215
    There's no specific number settings needed for the plugin. I've run some tests with numbers with Windows SAPI and NVDA (using multiple different voices and synthesizers) and they all came out fine.
    On phones there can be issues when large numbers are interpreted by the screen readers as phone numbers, and read digit-by-digit, but this doesn't happen on Windows.

    My best guess is that there is a formatting issue with the text line that is being spoken, for example
    "you took 9damage" instead of "you took 9 damage"

    The easiest way to find out is to turn on the debug output inside the plugin. Then every line the text-to-speech engine is trying to say will be logged to the console. You can easily check there if there's some typo or a formatting error this way.
    upload_2021-2-9_18-21-27.png
     
  30. k0rt4

    k0rt4

    Joined:
    Mar 19, 2013
    Posts:
    4
    Hi @mikrima thanks for an awesome plugin!

    I added the UAP to an audio only game that i'm developing so I'm just using the UAP_AccessibilityManager.Say function and it works perfectly with NVDA, but it doesn't seem to recognize the Microsoft SAPI narrator. If I turn off NVDA, and turn on the Windows narrator, it switches to the internal custom TTS reader synthesizer of the plugin.

    Am I missing something? I want to use the native Windows narrator so the players that don't have a screen reader installed can still hear the localized instructions I'm giving them through the Say() function.

    Thanks for your support, you are doing an awesome job!

    Using Unity 2020.2
    Windows 10 / 64bit
     
    Last edited: Feb 13, 2021
  31. BFAHK

    BFAHK

    Joined:
    Oct 9, 2020
    Posts:
    5
    The plugin suddenly cannot speak any text (but it can play audio). Not even directly calling the Say() function. Technically, it cannot play text on my android device, but it can play text in my mac unity editor. I put a debug line in the audio enqueue function, and it shows that the audio is added. What could be the problem? I didn't changed any of the source code of UAP.
     
  32. BFAHK

    BFAHK

    Joined:
    Oct 9, 2020
    Posts:
    5
    Further explanation on the last post. I found that the plugin cannot speak the texts only on some devices. In my case, it is my Huawei Media pad m3 lite, while it speak completely fine on my other android devices. So my problem is, how can I get the TTS of the system of a current device and point my plugin to it manually? I hope it would be easy, otherwise I will leave it like that.
     
  33. mikrima

    mikrima

    Joined:
    Dec 20, 2013
    Posts:
    66
    Hi @k0rt4 !
    UAP can currently only detect the NVDA screen reader on Windows. Windows Narrator isn't supported at this time.
    Windows SAPI is used as the fallback voice generation solution, but that will probably not use the Narrator voice or settings.
     
    k0rt4 likes this.
  34. mikrima

    mikrima

    Joined:
    Dec 20, 2013
    Posts:
    66
    HI @BFAHK - does the plugin just not produce text-to-speech, or does it not turn on at all on the 'Huawei Media pad m3 lite'? I know some Asian devices run really customized (bastardized) versions of Android where a lot of functionality has been removed, renamed, or cannot be accessed properly. I came across one device that kept reporting that Talkback was turned on even when it wasn't.

    UAP uses the standard Android speech output, there is nothing special or customized about it.
    Does regular Talkback work fine on that device? Does the device have text-to-speech capabilities otherwise?
     
  35. kathy12345

    kathy12345

    Joined:
    Jun 12, 2016
    Posts:
    9
    Thank you very much, Mikrima, I can now build to PC. Sorry for the delay in replying. I read the 2010 Matt Gemmell article you referenced in your blog, and realised I hadn't made the screen reader button the first thing in the game. I'm still struggling to make it operational. But your plug-in is working now, the problem is now on my side.
     
  36. codyicomponent

    codyicomponent

    Joined:
    Jan 16, 2020
    Posts:
    1
    Is there anything special I need to do for my buttons to read the text of a child label with a Text Mesh Pro UGUI component attached it it?

    The text is getting read fine for UAP Labels but on the UAP Button, it acts like its not a proper label and just uses the Button object name.

    If I switch the child label to use a standard "Text" component, then it gets read properly.
     
  37. Kundan_Kmr

    Kundan_Kmr

    Joined:
    Mar 23, 2021
    Posts:
    1
    Hello, the plugin works great while working in a single scene. but when I implemented it in the additive scene, it's not working, please refer to my stack trace log below. Screenshot 2021-03-30 at 4.27.31 PM.png
     
  38. kathy12345

    kathy12345

    Joined:
    Jun 12, 2016
    Posts:
    9
    There is a bug in the new UAP version that stopsText Edit Fields working. My genius programmer says:
    AccessibleTextEdit.cs Line 244
    EventSystem.current.SetSelectedGameObject(inputField.gameObject);
    should be EventSystem.current.SetSelectedGameObject(tmpInputField.gameObject);
     
    mikrima likes this.
  39. golagani

    golagani

    Joined:
    Oct 18, 2018
    Posts:
    2
    Hi Everyone,

    We recently integrated the UAP plugin v1.1.0 in our project and it seems not working as expected when we load additive scenes.

    When we load SceneA and SceneB additively then all the Accessibility UI components in SceneA are not accessible with accessibility controls.

    Please let me know if there is any workaround for this issue to make it work with additive scenes.

    Thanks,
    Naveen Golagani.
     
  40. Jelmer123

    Jelmer123

    Joined:
    Feb 11, 2019
    Posts:
    243
    EDIT: I updated to 1.1.1. and the bug with the labels being interrupted seems gone. How about the direct touch area?

    I'm running into some issues on iOS:
    - Button labels are not read out fully, only the first 2-3 words are read out loud, and then interrupted by by "button". Is this an iOS bug or a UAP bug?
    - On iOS, the app required direct touch mode, which is a special voice over mode that we want to avoid having to use. Any tips on using the normal voice over mode? (I've emailed support about this, will post the answer here when it comes).
     
    Last edited: Apr 14, 2021
  41. mikrima

    mikrima

    Joined:
    Dec 20, 2013
    Posts:
    66
    Hi @kathy12345,
    thank you so much! I added the fix into the plugin and updated it on the Asset Store.

     
  42. mikrima

    mikrima

    Joined:
    Dec 20, 2013
    Posts:
    66
    @codyicomponent
    The previous version (1.1.0) of UAP didn't have support for all of the TextMeshPro UI elements, only for the labels.
    However, the current version (1.1.1) supports all of them now. If you update to the latest version, it should work.

     
  43. mikrima

    mikrima

    Joined:
    Dec 20, 2013
    Posts:
    66
    @Kundan_Kmr
    Could you describe the setup of your main and additive scene a bit?
    I assume the accessibility manager prefab is in the main scene, and then the new scenes A and B contain at least one Canvas each? Do the Canvasses have a UI Group Root component on it?
    You only mentioned scene A not working - but does scene B work?

     
  44. Eggpunk

    Eggpunk

    Joined:
    Nov 2, 2014
    Posts:
    39
    @mikrima
    Before I start spamming the asset store link to every Unity dev I know. The asset is currently showing as free in the store. Is that intended? Not sure if that's a tech issue of some kind or something not yet announced (that I've seen).

    Edit: I see the item on the Trello board stating that it's now free on the store and Github!
     
    Last edited: Apr 21, 2021
    mikrima likes this.
  45. mikrima

    mikrima

    Joined:
    Dec 20, 2013
    Posts:
    66
    @Eggpunk
    Yes, this is intended.
    As of yesterday, the plugin is now free (for forever) and open source.
    The source, including the native code for the Android and Windows libraries, is also available on github (link is in the asset store description).

     
    Last edited: Apr 21, 2021
    Jelmer123 and Eggpunk like this.
  46. yarrrgrbl

    yarrrgrbl

    Joined:
    Mar 21, 2020
    Posts:
    3
    Apologies if there's an obvious way to do this, but is there a way to toggle speech on/off without also turning off keyboard navigation of a UI? This could be useful for someone with vision, but who had difficulty using a mouse and needs keyboard navigation.
     
  47. mikrima

    mikrima

    Joined:
    Dec 20, 2013
    Posts:
    66
    @yarrrgrbl That is an excellent point - that use case actually hadn't occurred to me so far.
    There's no overriding 'NoTTS' bool at the moment - however, there's individual bool variables and 'Get' functions that handle this for the individual platforms. This will make it a walk in the park to add the functionality that you're looking for. If you look inside the UAP_AccessibilityManager, somewhere around lines 4610ff, you'll see a bunch of functions like this:

    Code (CSharp):
    1. static public bool UseAndroidTTS() { ...}
    2. static public bool UseiOSTTS() { ...}
    3. static public bool UseWindowsTTS() { ...}
    4. static public bool UseMacOSTTS() { ...}
    5. static public bool UseWebGLTTS() { ...}
    Currently, they all just return the platform specific bool. But you could create a global bool value which allows or disallows TTS in general. Let's call it m_AllowTTS - and then extend each of these functions to && the return value with that global setting.
    For example:
    Code (CSharp):
    1. private bool m_AllowTTS = true;
    2.  
    3. ....
    4.  
    5. static public bool UseAndroidTTS()
    6. {
    7.     Initialize();
    8.  
    9.     return instance.m_AndroidTTS && instance.m_AllowTTS;
    10. }
    11.  
     
  48. yarrrgrbl

    yarrrgrbl

    Joined:
    Mar 21, 2020
    Posts:
    3
    This works perfectly - thanks for the quick response and solution!
     
  49. Sekob1128

    Sekob1128

    Joined:
    Mar 24, 2017
    Posts:
    1
    Hi @mikrima. I don't know why but UAP is not working on Mac OS (with VoiceOver). We are using v1.1.0 and if I am not mistaken there are no dependent libraries for Mac OS. Does UAP works on BigSur?
     
    Last edited: May 13, 2021
  50. Jelmer123

    Jelmer123

    Joined:
    Feb 11, 2019
    Posts:
    243
    Hi

    Is it possible to know when a text to UAP_AccessibilityManager.Say is finished with a text? I would like to play a soundeffect right after a sentence has finished, and there will be more sentences in the queue.