Talk back announce Double Tap to Activate on header element - mobile

I am working on a mobile site which needs to be accessible with screen reader. I am testing it with Talk back on android device. Problem is Talk back announce "Double Tap to Activate" on each element, even if it is Header (H1, H2...) or a text only like Span. I am not sure how to disable it.
But it should read "Double Tap to Activate" on button, select, link etc actionable item.
Can it be done by Talk back setting?
Thanks.

I just heard from a knowledgeable accessibility expert, "Apparently, Android thinks anything that has a tabindex of 0 or -1 is automatically an interactive element and will announce the "double-tap to activate" hint."
So possibly you could set your tabindexes to something else and see if that fixes it?

I found the issue exists in jQuery mobile plugin. I am using jQuery.mobile-1.3.1.js plugin in my application which binds "vclick" event on document. And which causes double tap issue. To resolve this, I unbind "vclick" event on document.ready method on master page.
There is one more plugin which can be a reason of this issue i.e. jQuery.validate.js. I found it binds "click" event on , and screen reader (Talk back in my case) takes non-clickable elements as non-clickable. So same unbind is useful for "click" event also. Hope this information would help to some one.

This is now fixed on Android Chrome Canary
https://bugs.chromium.org/p/chromium/issues/detail?id=1023229

Related

Why is the MapListener not always fired on Codename One GoogleMap under Simulator

My app features a ContainerMap (GoogleMap with valid Javascript API Key) that is laid in center location of a BorderLayout form.
super(new BorderLayout(BorderLayout.CENTER_BEHAVIOR_SCALE));
...
this.add(BorderLayout.CENTER_BEHAVIOR_CENTER, BorderLayout.center(userReportsMap));
I have registered a MapListener and I wonder why it is not always fired when I zoom in or out under simulator ? It looks like it is fired a dozen of times right at the beginning when the GoogleMap is initialized and the MapListener is added to the map, and then it does not fire anymore. I press minus key and plus key to zoom out and in.
Please note : I don't remove the listener or instantiate the map anywhere afterwards.
On the contrary on an Android device it seems to work as expected when I pinch. So is it a limitation in the simulator due to the underlying Javascript map ?
Any hint appreciated,
I have just released some changes to the Google Maps lib to fix a couple of race conditions in JS and simulator. This might fix the issue for you.
here is a direct link to latest lib. Or you can wait (probably less than a day) for it to appear in Codename One Settings/Extensions and update through there.

Angular and Google tag manager (GTM) gtm.click

I am running into a problem, and I cannot seem to find a fix for it. The situation is as follows the marketing department wants to integrate GTM. Which is fine as they want to have full control over the different third party providers they wish to integrate. But for this to happen they would like to have the ability to track all clicks on a page.
And they came back to me that currently no click events are being tracked with the current configuration within GTM. At first the thought was that events were not propagating (bubbling) upwards. But having tested this myself by binding a event listener to the document (click) (see below) all div, buttons etc. with an ng-click directives did reach this handler without problems.
document.addEventListener("click", function(event){
console.dir(event.target);
});
So my assumption was that there was something wrong with the configuration but after looking at the configuration (one I created myself which looks as follows):
I still could not get it to work. Buttons that already use angulartics - https://luisfarzati.github.io/angulartics/ to send an event to the GTM container work as expected:
Download
Only the catch all click events (or any filter on it like purely looking at button clicks) does not. Now after looking at it a little more it seems GTM expects the gtm.click _event to happen. But I can't figure out (gazing through the gtm.js file) how they bind to all click events within the document (there is a click binding on the document after initialization but I am unsure if this is GTM or something from angular). And even if so I have placed many breakpoints within this file which seemingly could be related to it but none of them triggered when something was clicked.
So my question is, has anybody got experience combining angularjs with angulartics and GTM while having it catch all click/touch/mousedown etc. events and send these to GTM?
Make sure that you pusblished GTM container after you made some changes. Use "Publish Now" or "Preview and Debug" buttons inside of GTM interface(top-right corner).
Because according to your tag config this tag should fire every time when user clicks something on the website.
Regarding to "gtm.click" - this GTM-event will fire every time, when user clicks something on the website.
On the screenshot you may see, how it looks like in GTM debug mode("Preview and Debug") when user clicking on somethig at web-page, when GTM click listener turned on(like in your tag).
May be some relevant articles from my website about tracking of buttons/links on GTM will help you too:
http://konygin.net/gtm/tracking-links-en/
http://konygin.net/gtm/tracking-buttons-en/
My problem turned out to be that the person (from marketing) who gave me the html GTM tags (noscript / script) did not copy it properly (or something went wrong when it was pasted within JIRA). And after I copied it directly (having gotten access to the GTM admin panel) it worked as I would expect it to work.
Seeing as I debugged it by trying to only have one index.html with purely a button in it. Even at that point the tracker did not work and I became suspicious why that was happening as there was no angular code any more that could cause the problems.
Lesson learned, next time copy code yourself when you need it to make sure it does not get corrupted along the way :/

drupal overlay not closing, Edit link not loading overlay

I'm having an odd issue after having migrated my drupal project to a client's server.
After configuring the apache http.conf to accept clean urls, I'm now finding that the administrative overlay does not always respond.
-The Find content shortcut doesn't respond, but the Content link on the overlay does.
-The Edit link when on a node's detail page makes the site darken like it does when the overlay is being loaded, but the Edit window for the node never appears.
-The X (close) on an overlay page (like when using Content to see the list of all nodes, but then want to quit out of it and go back to the site) fails to close the overlay and a strange, second vertical scrollbar appears on the right of the browser screen.
I have had a similar problem before, but chalked it up to javascript on the page interfering with the overlay's own javascript. Now I'm not so sure.
If anyone else has had this problem, or can surmise what the issue might be, then I would appreciate any and all help given.
My thanks,
~M#
It looks as if you are using a jQuery version that is incompatible with the overlay module. It's probably because $.browser is deprecated in jQuery 1.9, see the following issue:
Uncaught TypeError: Cannot read property 'msie' of undefined - jQuery tools
To fix this issue, you'll need to install the latest jQuery Update module and select something below jQuery 1.9 for the admin interface. This should clear up your problems in IE.

AngularJS app is not loading on Safari (iOS 5.1.1) back button. Any suggestions?

I've ran into an issue with Safari on iOS 5.1.1 and Angular where I am doing paginated results. After I decide to leave the page that is hosting the app, and then come back to the page by using the browser's history back button.
The application is not initialized so as I scroll again, the pagination functionality is not triggered.
Since 5.1.1 doesn't provide a web inspector, I had to rely on console.log to print events that I want to see that it's executing. On initial load, I see everything ok, but when I am back through the back button nothing fires.
My usual ways of fixing this are not working. Here are the things I've tried:
Used manual bootstrapping of Angular app
Made the page not support caching and expire the page as soon as it's rendered.
Neither of these helped, which is why I am here asking for some suggestions. Unfortunately it's not a very easy thing to replicate through a Fiddle or a hosted HTML file so I am unable to provide one. Hoping that some of you may have experienced this before.
Thanks in advance for any help.
Answer is quite late and I hope you found a solution already but it might be useful for others.
Unfortunately I won't be able to answer why the app is not initialized (due to the lack of code) but I can give you some tools/tips to ease the debugging (assuming you have the iOS simulator).
Debuging on mobile safari can be done either :
with weinre and get the features of the web concole,
or by enabling remote debugging in Mobile Safari itself, see here
Yea, same problem here with iOS 7. It must send the DOM structure over before running any javascript. Kinda pointless...
Since the problem is with mobile safari and since it supports popstate event, you can use this event to detect when the user is back in combination with $location.path(), for example:
$(window).bind("popstate", function () {
alert(location.pathname + $location.path());
});

Silverlight UI Automation issue - element cannot be found

I need to create automated tests for a Silverlight application, I use the System.Windows.Automation namespace. My problem is the following:
I use AutomationElement.FindFirst to locate UI elements in the UI tree:
AutomationElement toBeInvoked = browser.FindFirst(TreeScope.Descendants,
new PropertyCondition(AutomationElement.AutomationIdProperty, id));
This works for a few steps, but after it won't find anything. I inspected that after screen changes the UI tree is going to be empty, UISpy sees only the Silverlight control, but nothing more: screenshot
. (I've also tried to use TreeWalker, but the result was the same.) If I click manually, and inspect the elements with UISpy, everything is OK. But when I run my code, it stops (usually at the same button).
Later I realized that if I click through manually the screens that my code will visit, and after I run it, there won't be any issue... Strange. I tried it in FF 3.6, 4.0 and IE8. The problem is the same in every browser.
Has anyone any idea what could be wrong, or where could be the mistake? Am I missed something in my code, or the problem is in the settings of the browser?
Thanks in advance, regards,
Miklos
"If I click manually, and inspect the elements with UISpy, everything is OK. But when I run my code, it stops"
You can simulate manual-click this trouble-causing button by:
1.Get the coordinate of the button you want click by UI Automation;
2.Drive your mouse to click on its coordinate(by win32 mouse_event api);
See that if its following steps can run or not.

Resources