How to create a user-impaired accessible website: surfing without a mouse? - web

I have created a webpage using Backbone.js and Marionette.js that mostly consists of a bootstrap accordion view that displays a list of items when the accordion header is clicked. Each item can also be clicked, which will show a hidden div of detailed information that pertains to that particular item.
I would like to make this site accessible to people who might not be using a mouse (Maybe they're visually impaired and using a screen reader? Maybe they just don't like clicking things? Either way.) I'm thinking that this would mean being able to press the Tab key to get to the accordion, pressing Space or Enter to open the accordion, Tabbing down (or down arrow key?) through the list items, and then using Space or Enter to show the selected item's hidden div.
I'm finding it difficult to find information on how to add a feature like this, since searches like "How to make an accessible website that can be used without a mouse" mostly turns up blogs on what a developer should do to add accessibility to a page, and not much on how to do it.
Currently, the page doesn't really respond to any keyboard buttons. Any tips or resources you could share would be extremely appreciated. I've been fiddling with ARIA role tags, but I'm either not doing it right or it's not the answer here.

You have to use tabindex
https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.tabIndex
Screen readers automatically read whatever element is the activeElement

Related

How to implement scroll to a section/fragment on click in Liferay?

I want to implement scrolling to a particular section on click in Liferay, but I have no idea how to add functionalities in Liferay.
I have created a page using multiple fragments and in the top of the page I have headers of the sections and on click of a header the page should be scrolled to that particular section.
Attached page screenshot link below for reference
The easiest way to scroll to some place on the page is to place an anchor there, e.g. with <a name="scrollTarget"/>. In your navigation, you'll just link to this by Scroll to Target and you're set.
Of course, this can be done a lot fancier, with an animated scroll etc, but the basic start is this. There's nothing Liferay-specific hidden here - pick any of the more fancy methods, create fragments with the proper markup, and make sure they're used on your page.

Is it possible for a webpage to change its content based on the button you clicked to get to that page?

Let's say there's two buttons on a homepage that both link to the same page. Is there a way to exclusively show a certain part of the page if you click on one button and show a different part if you click the other button?
If this is not an option, would it be possible to store the information of which button is clicked to get to the page?
I'm really quite in the dark on this and barely know how to formulate the questions i am asking, so finding an answer on google is quite difficult. Thanks in advance for any help.
Yes,sure. Just add different parameter to the link on the buttons e.g. page.html?type=1, page.html?type=2. On the target page read the value of the parameter and modify the page accordingly.

Is there a current method of indicating to users that a link won't take them off site?

It's currently impossible for a user to tell if clicking on something will load something in their current page or take them to a new page. I feel that this is why many sites use hoverable dropdown menus, so that they don't have to click anything. This can be messy, though, if you don't intentionally hover over something and forms the habit of hovering over things and expecting a result.
There should be a standard way to identify links as external or internal. Maybe a little hover effect or symbol used in the link?
Is there anything like this, and if not, should there be?
I believe by "internal" you mean that the link does some javascript thing, and does not load a new page.
I think an effective way to indicate an immediate action is by using a button style, rather than a standard looking link. A blue underlined link somehow seems much more likely to jump to a new page than something that looks like a button.
Give the button an appropriate label and/or symbol that indicates an instant action. For example, a button that expands a section open might use a little triangle that rotates as the expanding happens.
You can also establish a consistent style for "internal" actions, use a particular color or style for links that don't take the user to a new page. Sometimes I use blue for normal links and a shade of purple for internal ones.
In general, I find it isn't that important to specify. If a user sees a link or button that like it will get them what they want, they will click it. It is up to you as the designer of the website to decide if the most appropriate action is a new page, or an action on the current page. Unless the user is going to lose some work they have done, going to a new page shouldn't be a problem. If it really took the user by surprise, they can always go back. In my experience, users don't worry about it either way.

How to remove whole Site Actions menu for specific users?

I have been doing research, and I havent found a way to remove the WHOLE site actions menu for "non-content editors" in sharepoint. I have researched this:
<SharePoint:SPSecurityTrimmedControl ID="SPSecurityTrimmedControl2" runat="server" PermissionsString="ManageSubwebs">
but this only hides certain links in the site actions menu, what if I want to hide the whole thing so you cant even see 'site actions' in the upper left hand corner of the page for certain users. The content editors should be able to see this menu, but non-content editors should not be able to see this menu at all.
Try changing PermissionsString to "ManageWeb"... it will hide for all users who doesn't have ManageWeb role... How are you going to categorize "certain users" in your question, if it is by role, you can quickly have a look at msdn
i know its a bit of a cheat way round, but i used this from codeplex... you can sepecify what users see it through groups http://spribbonvisibility.codeplex.com/
the only issue is it does remove the users name from top right, and leaves no menu there...

Building Nav Bars with rollovers in DreamWeaver CS3

I'm working with Dreamweaver CS3. The question here is what part of the code (listed below) do I need to replicate to have my secondary nav bar utilize the on-click action?
FYI...DW has two menu options or auto insert items...one for roll over images and one for "navbar". DW will only allow you to use the 'navbar' item once per page
the nav bar option builds all the rollover actions for you (listed below)
the "rollover" option ONLY builds normal and over, but no click
I guess I really have two questions...the first is what part of the code do I need to insert manually, the second is what does the "MM_nbGroup" code mean?
"../photogallery.html" target="_top" onClick="MM_nbGroup('down','group1','photoMainNav','../images/buttons/photography_down.gif',1)"
onMouseOver="MM_nbGroup('over','photoMainNav','../images/buttons/photography_over.gif','../images/buttons/photography_over.gif',1)" onMouseOut="MM_nbGroup('out')"><img src="../images/buttons/photography.gif"
Thanks for any help on this in advance!
For anyone wondering the same thing, here's what I've found so far...
The 'insert' bar provided in DWCS3 doesn't allow for two 'inserted' menu bars on one page. However, the 'Behaviors' palette will allow you to add effective roll-overs with the "Set Nav Bar Image" option. Unfortunately (as far as I can tell) DWCS3 is not as smart as Adobe's GoLive was, in that it won't automatically fill in the appropriate items if you name your files correctly. Even still, you should name your images accordingly (xxx_over, xxx_down, etc) to keep it straight in your own head.
As for the MM_nbGroup question, best I can tell this is WYSIWYG code that ships with DWCS3 (the kind of stuff that really mifs some of you developers, sorry guys), as it names items by group # and doesn't seem to have any real relevance in the lexicon of html. I could be mistaken on this however, and am open to enlightenment on the topic if anyone can offer.

Resources