How to make VoiceOver cursor scroll my webpage visually? - scroll

When a person is exploring my webpage via Voiceover (flicking from element to element on a phone, or Control-Option-right/left arrow on a desktop), I want the screen to scroll so that whatever VoiceOver is reading is also visible.
What happens right now is that on a long screen full of only text (on Mac with Chrome 52), the Voiceover cursor will continue off-screen, and the screen will only update its visual scroll position when the cursor encounters something interactive like a link or an input field. You can try it for yourself here: https://www.apple.com/voiceover/info/guide/_1128.html
I saw an answer to a similar question about native apps, that people using Swift etc needed to manage the scrolling themselves. Is it the same for websites? Is JavaScript the only way to manage Voiceover focus scrolling?

Related

What is the OSX keyboard shortcut to zoom in, in the Firefox Developer console?

When my cursor is in the developer console, and I try to hit Cmd-+ meaning, Cmd-shift-=, the zoom-in happens in the main window, rather than in the Developer Console or whatever they call what opens up when you hit Cmd-option-i
I can zoom out fine, and Cmd-0 restores the zoom level to 100%. But I can't zoom in.
How can I do that? I have an MBP 2012.
According to https://developer.mozilla.org/en-US/docs/Tools/Keyboard_shortcuts the shortcuts on macOS to zoom in and out are Cmd++ and Cmd+-.
Note that you have to focus the DevTools (e.g. by clicking into them) to make the zoom work within them.
As mentioned in a related answer, this might also be related to your keyboard layout.

Xcode weird behavior when scrolling text

I wonder if there is a way to disable the following:
I have two project windows opened on the screen next to each other and when I position the cursor on the active project window and scroll with the trackpad, I see the other project's content window scrolling too! I need only one to scroll at a time. Is there a way around this annoying feature?

NSWindow, how not to be part of a screenshot?

My Cocoa app displays a transparent window on the screen, but when the user tries to take a screenshot using Mac OS X's built-in screen capture key with the option of selecting full windows (Command-Shift-4, then Space Bar), my window gets highlighted as part of the possible windows to capture.
How can I tell my Window or App not to allow this? My Window already refuses to be the Main Window or Key Window through -canBecomeKeyWindow and -canBecomeMainWindow both returning NO, but this still happens.
The Window is also at the NSModalPanelWindowLevel and NSScreenSaverWindowLevel does the same thing.
Notice that every window is eligible for screenshots, even the desktop, dock and menu bar, which are special windows. You can even take a screenshot of the Exposé overlay window itself. This leads me to believe that there is no way to do this.
I suppose you could hook the Command+Shift+4 key event and hide the window, but that key combo is user-definable, so it is subject to change.

Can I change the current cursor from an inactive application?

I’ve got a utility Mac application that runs in the background (LSUIElement enabled). Under some condition this application displays a menu window with several buttons. The problem is that when I hover over this window the mouse cursor still behaves according to the application beneath it – when there’s text under the menu, cursor changes to the insertion “I beam” shape.
Obviously I’d prefer a regular pointer arrow. I’ve dived into NSTrackingArea and friends after a bit of hacking I can detect the mouse-enter and mouse-exit events. But when I try to change the current cursor using NSCursor on mouse enter, nothing happens. Looks like the machine refuses to change cursor from an inactive application, because when I activate the application before the mouse-enter event, the cursor changes.
I don’t want to switch the active application just to change the cursor. Is there a way to fiddle with the cursor from an inactive application?
P.S. Same problem on cocoa-dev: one, two.
I'm affraid this is not possible due the OS X restrictions.

Detect that the onscreen keyboard has been displayed on Windows Phone 7

Simple question:
How do I detect that the onscreen keyboard has been displayed on windows mobile 7? Is there an event I can add a listener to?
It takes up about half the screen and I want to scroll the view up when it gets displayed...
EDIT:
A comment below indicates more clearly what I'm trying to do: I have a textbox input, and as the user types into it an autocomplete dropdown appears below it (like google suggest). By default, the active control (the textbox) scrolls into view when focussed, and the onscreen keyboard is directly below it. The onscreen keyboard appears in front of my autocomplete dropdown - what I want to do is make the screen scroll a little further up, so there's some room for my dropdown to be shown.
The windows phone UI design guidelines say: "When the keyboard is deployed, the application should scroll to ensure the active edit control and the caret are in view". This happens fine, it's just the non-active dropdown gets hidden behind the onscreen keyboard.
The guidelines also say that an application can choose to show the onscreen keyboard, and can also choose to close it.
At the moment i'm stuck, and I don't think (based on my research and the replies to this question) that it's possible to detect that the onscreen keyboard has been displayed. I'm moving my investigation to see if it's possible to determine the "visible area" of the page (width & height in pixels for example), and combine this with an onfocus for the textbox... not sure if this will prove fruitful though.
Detecting when the virtual keyboard is displayed won't be possible in 7.0, as confirmed by Microsoft's Peter Torr in the WP7 forum on MSDN.
Maybe, as a dirty workaround, you could detect when the position of your text box (or its parent scroll viewer's offset) has changed, as this would indicate that the virtual keyboard has appeared or disappeared.
You can listen to the TextBox.GotFocus and TextBox.LostFocus events to detect when a text box in your application acquires and looses focus.
If an editable element gets focus then the framework will automatically scroll the element into view. So you really shouldn't have to do anything.

Resources