It is often very hard to find a module's settings once you installed it. The "by module" page /admin/by-module helps out by providing a link to the modules settings page, if there is one. But this page is hard to find for newbies. A logical step is to provide the link to the modules settings page right in the row of the module, next to the "more help" link. Quite some modules don't have a settings page (mainly api modules) so then it won't be visible.
All the links of the by-module page are done by function system_admin_by_module() http://api.drupal.org/api/function/system_admin_by_module/6 so this function can be called to fetch the links.
This was meant to be part of the big revamp of the module page, http://drupal.org/node/538904 which is very improbable to impossible to happen for D7. This feature was one central piece of it.
Comment | File | Size | Author |
---|---|---|---|
#141 | module-settings.png | 1.77 KB | chx |
#139 | module-settings.png | 63.07 KB | sun |
#130 | icons-module-page.zip | 2.04 KB | eigentor |
#129 | 598758-module-links_2.patch | 18.35 KB | TheRec |
#127 | 598758-module-links_1.patch | 18.96 KB | TheRec |
Comments
Comment #1
stBorchertOk, here is a rough implementation that surely needs some work (e.g. icons for links, better positioning of links, etc.).
Comment #2
eigentor CreditAttribution: eigentor commentedthis is the screenshot of stefan
Comment #3
eigentor CreditAttribution: eigentor commentedInstalled the patch: wow, this is great. Right from your module you go to any related task...
We should not output all of the links that come through the system_admin_by_module() but only the ones for settings and permissions. Though the links that are generated automatically are often more self-explanatory (like "image styles" for image module), consistency is more important to the user imho. They may click "settings", no matter what comes with it.
"configure permissions" can be "permissions" to be shorter, "more help" can be "help"
Also it would be good to add a destination to the links, so a user is taken back to the module page after changing some permissions or settings. (sure debatable). At least for permissions it makes sense, not so sure with settings.
Here is my vision of a consistent interface. I found out we have quite some horizontal real estate to use on a 1024 px width, because seven theme has no sidebar, yipee!
Comment #4
eigentor CreditAttribution: eigentor commentedstborchert complained not unduly that the links take up too much space in the previous version. So changed the text size for the links to 10 px. This is still readable, and enough as the icons indicate the meaning ant it is often repeated. Click smaller screenshot for a 100% view.
Comment #5
Dries CreditAttribution: Dries commentedI like where this is heading but I wouldn't change the font size of the links. Instead, I'd try to re-organize things a bit; e.g. by expanding each module's entry to two rows.
For example, why not move the description down and make it span the entire row?
Another solution might be to get rid of the labels, and to just go with the icons. Just icons could work in this case, IMHO.
It might be personal taste though, so I'm interested in reading other people's thoughts.
Comment #6
stBorchert@Dries: maybe something like the one shown in the attached mockup?
Comment #7
eigentor CreditAttribution: eigentor commented+1 for icons only:
as the %$§"!/& Word Permissions is so long, I could live with an abbrevation for the table header here. One could write "Acess" but this would induce our old term-inconsistency again, so no, no, no. Permissions is permissions is permissions.
I asked Skilip over, cause maybe he found a solution in seperating the links out in his work on the module page...
Comment #8
eigentor CreditAttribution: eigentor commentedtagging
Comment #9
Bojhan CreditAttribution: Bojhan commentedsubscribe.
Comment #10
Dries CreditAttribution: Dries commentedThe screenshot in #7 works for me, but I'd stick with 'Operations' in the header. We just have to make sure that the icons have an title-tag. It would work for me.
Comment #11
stBorchertOk, I've put the links right below the description and added the icons eigentor used in his mockup.
Admin links now have classes based on its type:
* module-help-link --> misc/help.png
* module-permissions --> misc/permissions.png
* module-settings --> misc/settings.png
* module-admin-link --> currently no icon
(maybe all classes should be named "module-...-link"?)
Copy the attached icons into /misc.
The page admin/by-module is affected also by this patch (see second screenshot).
Comment #12
eigentor CreditAttribution: eigentor commented@Dries: ah, you mean, just one Table-header that sais "Operations" for all three actions and spans three columns? Yeah, this could work.
Stefans latest patch/mockup looks better, still I feel having the Operations at the right side would make it much cleaner. Just imagine a module with loads and lots of dependencies - this gets hard to scan.
Let's see what Skilip can bring to the table to separate the links out, or maybe system_admin_by_module() has to be slightly reworked to output a cleaner array so we can get a hold each operation separately as we want it.
Comment #13
stBorchertNew patch, other approach (taken from #7).
Icons are the same as in #11.
@eigentor: I've split the links array in
system_get_module_admin_tasks()
.Comment #14
Dries CreditAttribution: Dries commentedI like the screenshot in #13 but it would be good get some feedback from some UX people.
Looking at the screenshot, it looks as the icons have slightly inconsistent gray values. If I had my choice, I'd make them a tiny bit darker to emphasis them a bit more.
What I like about #13 is that it keeps things simple and uncluttered, yet it is a clear improvement over what we have today.
Comment #15
stBorchert@Bojhan: Here is a screenshot of the whole page.
Comment #16
stBorchertAnd here is a full screen with much more modules enabled.
As you can see, Locale inserts 4 configuration links. How do we handle this?
Comment #17
stBorchertI had a discussion about the links with Bojhan in IRC.
The first one is really simple to solve but te second one needs further thinking.
locale inserts 4 links: admin/config/regional/language, admin/config/regional/language/configure/url, admin/config/regional/language/configure/session and admin/config/regional/translate.
They all share the part admin/config/regional which is the main settings page for module locale.
Question: do we want to trust all modules to put their settings under one main path and extract this? Or do we want to introduce a new hook (e.g.
hook_settings_link
where modules can provide a link to their main settings page sosystem_get_module_admin_tasks
can grab this and insert it on the modules page?@Dries: what about image rollovers for the icons?
Comment #18
Bojhan CreditAttribution: Bojhan commented@Dries We will need direction on that second point. We ran into that issue continuously as we redesigned the module page.
I think this is a good step in the direction of redesigning the module page, we are still faced with the problem of having a mess of links - where some modules will have (n)either permission or configuration links (turning the operations part into inconsistent grid of icons). This has to be solved with more radical design changes, which was tackled in the module redesign issue. Let's not ignore the thinking that has gone into that thread, and assume they did not account for the problems we run into now - since they did.
I want to make a conscious decision, that we take this as a middle step to achieving the user experience that we want, and we use the direction given in the redesign module page as the optimal experience we want to be aiming for.
chx proposed linking the module name to the admin/$bymodule section, but this seems a step beyond that. I hope we can address the concerns he had regarding configuration links, which seem solid - if we want this pattern to scale.
Comment #19
stBorchertI had an idea about the settings link: why don't we add another menu item type, e.g.
MENU_DEFAULT_SETTINGS
?Every module that likes to add a general settings link can do this by defining this in
hook_menu
:Comment #20
stBorchertOk. Here we go.
I've added a new flag for menu item types (
MENU_SETTINGS_DEFAULT
) so a module author can mark a menu item as the default settings item (this only works in combination withMENU_NORMAL_ITEM
-->'type' => MENU_NORMAL_ITEM | MENU_SETTINGS_DEFAULT
).Attached is an icon set with darker images (thanks to eigentor) and a new screenshot of the whole modules page.
Comment #21
eigentor CreditAttribution: eigentor commentedGreat! Does not feel to cluttered to me.
This may be debatable, but I thing scannability is better if every icon has his own table column, even if he is absent. So the help buttons all stay underneath each other and similar.
This would need a colspan = 3 for the header, and somehow create empty table cells for absent icons.
A bit more distance between the icons makes them easier to separate visually and easier to not click the wrong one unwantedly.
Comment #22
Bojhan CreditAttribution: Bojhan commented@eigentor We can just align to the right, that would fix that issue. No need to add table columns.
Comment #23
stBorchertYou say, I do, my master :-)
Icons are now aligned right.
Comment #24
eigentor CreditAttribution: eigentor commentedRe-rolled with a bit more padding between the icons.
Well, aligning right is good, but won't always work. If there is no help or settings link, the order gets lost again (as in some cases in the present situation, e.g. see comment or contact module).
New patch and screenshot attached.
Comment #25
stBorchertI've found a solution on how to set
MENU_LOCAL_TASK
s as default settings items and will post a patch later today.Btw.: There is nothing in yet to stop maintainers from marking several links as
MENU_SETTINGS_DEFAULT
. Doing so will result in multiple settings icons on the modules page for this module. Do we want to limit this to one? And choose which?Comment #26
Noyz CreditAttribution: Noyz commentedPersonally having trouble groking this. Maybe it's an artifact of looking at static screenshots - you tell me. Here are semi-unbiased (haven't seen these UI's before) comments:
1. I don't understand why there's a lock icon, next to a gear. If it's locked, can you unlock it? If so, maybe the gear doesn't show until it's unlocked.
2. Help as I've seen it has been "more help." As an aside, I personally dislike "more help" because it's overkill and suggests that I previously wanted help. But whatever it is, we need to be consistent.
3. Why do some visuals have multiple gears?
4. Will all UI's have this model? or will modules be the only UI in Drupal that uses icons as actions? Despite the simplicity, users will have to grok how to use UI's that are different from others, e.g., "it said edit over on content types, I wonder if this gear will also be edit"?
Now, I've spent more time on this UI and read comments from the top so understand a bit more of what's going on. So here's some biased feedback:
1. The icons seem like they're inactive (unclickable). They're missing key affordances to suggest they're clickable.
2. The lock icon doesn't say permissions to me. I think if it were a group of people with an edit pencil maybe then I'd get it. Lock tells me it's locked down and I can't edit it
3. Feedback is the same regarding multiple gears and more help? Hopefully the screenshot showing mutliple gears was a mistake. "More help", I'd like to see change to "help" across the board. The usage should be consistant across Drupal as well.
Comment #27
stBorchert@Noyz:
If you look at the latest screenshot you'll that there is only one "gear" icon left for each module (if the module provide settings).
Comment #28
stBorchertOk, heres the new patch with
MENU_SETTINGS_DEFAULT
for local tasks. Yeah!Comment #29
eigentor CreditAttribution: eigentor commented@Noyz
Valid comments.
1. Lock icon: you're right. Common use of a lock icon in Photoshop et al is for something that is locked and cannot be edited. Icons with users though I find misleading, and trying to indroduce a semantic system of icons should be reserved for actions directly adressing users.
I browsed the web a bit what icons are common for permissions, and found something - hey, how about instead of a lock providing a key?
Drop the attached icon in /misc and voila.
A key signifies to me opening something up instead of locking it down, so should be good.
Anyway: Icons should be the smallest issue here and can be changed until one day before Drupal 7 release. (well, say, two...)
2. Icons being grey / not appearing active and clickable:
This is also true and generally things that are not active are grayed out.
Though I think the present proposal is a valid compromise: making the icons too strong clutters the page and gives them too much weight. We could have a darker hover state but this breaks the UI concept that we never have hover effects on icons.
The really valid solution would be flooded accordion hover states http://drupal.org/node/492834 that make the icons only appear when you hover a row. But we don't have it, so this is why I believe it is a valid compromise to have them gray. It is until you clicked any of the icons once that you understand they are clickable. User tests need to provide answers and you may be right.
3. New concept of providing only icons for actions that is nowhere else in Drupal
This is maybe the most serious issue with these icons. We really have this nowhere else. But this, as the icons is a pure UI issue that can be sorted out after-slush. There are still some options like this:
Sorry, this reflects an older version and still has the lock icon, but you get the point. Still one sees this is much more cluttered, but could be an alternative if we want to make sure the icon-only version does not break our consistency.
In the end I would even be happy to go without icons completely and only provide the text, since this would be the most consistent.
Still I believe the gain of getting this functionality in is so big that even serious tradeoffs in consistency concerning use of icons could be worth it. Putting in icons puts some pressure on us to clear the use of icons in Drupal. If they get thrown out in the end - hey, can live with that.
Comment #30
eigentor CreditAttribution: eigentor commenteddifferent screenshot
Comment #32
stBorchertRe-rolled the patch.
Comment #33
eigentor CreditAttribution: eigentor commented@stborchert: As the help icon appears as blue in other places, we should add the gray one as "help-gray.png" and keep the original help.png in order not to break all the other appearances of the icon.
Comment #34
dman CreditAttribution: dman commented@eigentor a 'key' for permissions is genius! <3
I thought we were able to avoid the text-on-every-button because the text was at the top of the column earlier. With that text now coalesced into 'operations', putting text back on the buttons would bring us full circle.
No, follow the lead of #473268: D7UX: Put edit links on everything and allow us to just use icons where just icons fit.
Comment #35
Noyz CreditAttribution: Noyz commentedeigentor: I like the key better than the lock. I still think it could better though. Yoroy, Boyhan and I went back and forth on this a bit earlier. I think vista does a great job at this (http://skitch.com/jeff.noyes/nn9pm/fireworks), but of course there is not a GPL'd 16 x 16 alternative. That said, until an entire suite of consistent, informative, GPL'd icons turns up, I'm sold on where you've landed.
Comment #36
Dries CreditAttribution: Dries commentedNow we have the concept of a main settings link, we could also consider switching back to regular links (using the normal font size). Would be great to have a screenshot of that for final comparison.
Comment #37
stBorchertI attached a simple mockup with text links instead of icons.
Hm, icons really look better imo.
Comment #38
Bojhan CreditAttribution: Bojhan commentedSo after looking at the comparison some more, I think we thought all to agree on not using text links. It will make the table look inconsistent and unusable. Lets go with just icons and fix any other issues regarding the UX later, as we usability test this page - because that is required to validate any of these icons.
I am going to defer to Jeff Noyes on the icon issue, it seems like the best approach for now.
Comment #39
yoroy CreditAttribution: yoroy commentedUsing text links make it look really messy. Let's go for the icons. Any thouch ups on the icons should be done in a overall rework of the graphics we're using throughout core, not in here. For now, these icons are good.
Nice work eigentor.
(edit: and if we commit this new grey help icon, make it really replace the blue one we have now. I made that one but it makess way to much noise on pages)
Comment #40
seutje CreditAttribution: seutje commentedGot a few offsets and 1 hunk failure while applying this, the failure was just whitespace, but I'm still gonna reroll this, just to keep it fresh
I really like the idea behind this, but there are a few quirks with the way it's done...
The currect implementation creates an empty
<a>
, slaps enough padding (in px I might add) on it to accommodate for the background image to be visible and leaves it at thatimo, it would be a lot better to have the
<a>
wrap a<img/>
and then simply put some margin (in ems) on the image, so we can have some sort of proper text-only zooming and then we can set an alt-text on the image just in case something happened to it (404 or it got blocked by some addon or w/e)also, we should seriously consider moving towards sprites instead of making more and more icons, but I suppose that can happen in follow-ups
too bad it's too late to get spriteme in core :P
attached is a clean reroll, nothing changed
Comment #41
yoroy CreditAttribution: yoroy commentedYes, that's the better way to do it. Look at how the icons in the Views UI are handled:
Comment #42
yoroy CreditAttribution: yoroy commentedSo, needs work
Comment #43
seutje CreditAttribution: seutje commentedActually, I was talking about something like this:
as advised by the WCA guidelines at http://www.w3.org/TR/WCAG10-HTML-TECHS/#link-text-images (note the absence of a title attribute on the anchor)
granted that this would make it slightly harder for themes to override this, as it isn't just css
it also wouldn't hurt to have some sort of visual indication when one of these items is highlighted (like regular links do with a dotted outline)
Comment #44
yoroy CreditAttribution: yoroy commentedGoes to show you should never trust my coding advice, I'm a hack! :-)
Comment #45
Bojhan CreditAttribution: Bojhan commented@seutje visual cue is hover we still need to design.
Comment #46
seutje CreditAttribution: seutje commented@Bojhan: I don't see how hover state has anything to do with what I posted
my points are:
Comment #47
Noyz CreditAttribution: Noyz commentedText does look a bit sloppy, but I think that might have been because of the lack of styling.
Regardless, I like the idea of using icons, however we need to make a conscious effort standardize. I reached out to some icon designers for an estimate - under the guidelines that after purchase we have the right to GPL the icons. Hopefully the price will be reasonable. If not, I started working on my own set which you can see on my site (http://www.jeffnoyes.com/icons)
Comment #48
Bojhan CreditAttribution: Bojhan commented@seutje See the last part of your reply.
@Noyz I agree that we need a standardized effort, although I do believe we cannot just grab any icon set and make it our own. It should be customized to fit the brand that Drupal is, and should also be accompanied by guidelines that allow us to reuse the same icon style. So I am not sure.
Comment #49
Noyz CreditAttribution: Noyz commentedBojhan, totally agree. If your comments are coming from looking at the icons on my site, I'd say that's because it's just a start.
Comment #50
eigentor CreditAttribution: eigentor commentedHow about getting the sucker in as it is and polishing later?
We start to discuss post-slush material, I would say....
This is strictly polish :)
So a quick reroll and bam.
er - rtbc I mean
Comment #51
stBorchertHere is a new patch with
<a href="..." title="..." class="..."><span class="element-invisible">...</span></a>
. This makes the link text visible by screen readers only.Comment #52
pwolanin CreditAttribution: pwolanin commentedThis kind of feels like a D5 throw-back. I'm really not very happy with the implementation - you are adding extra baggage to a router item that's totally unrelated to serving pages?
We are building most of the info on this page from the .info file - why would you not specify this in the .info? That's already for module meta data, right?
Comment #53
chx CreditAttribution: chx commentedthis makes me run screaming... agreed with pwolanin. The whole concept needs some thinking.
Comment #54
pwolanin CreditAttribution: pwolanin commentedSo, in the .info file maybe an array of paths for the links to settings? I think that's easier than a hook, which seems a bit overkill.
If you have the paths, you can run some code to get the page titles if that's needed, or just allow one link per module.
Comment #55
stBorchert@pwolanin:
There is no hook for the settings link. Its just an additional menu type.
@chx: ideas? thoughts? We're running out of time so this needs to be done very quick.
Comment #56
eigentor CreditAttribution: eigentor commentedchx pwolanin: Improvements please till 15/10 evening.
Our implementation worked. Sure it can be done better.
But this is about getting in a very needed UX concept.
Module authors actively provide a flag for a link as MENU_SETTINGS_DEFAULT if there are several settings links.
If there is only one, this MENU_LOCAL_TASK is automatically defaulted as MENU_SETTINGS_DEFAULT.
stBorchert please correct me if I have described this wrong.
Comment #57
mattyoung CreditAttribution: mattyoung commented.
Comment #58
stBorchert@eigentor:
No: only menu items with flag
MENU_SETTINGS_DEFAULT
are used on this page. If a module doesn't provide such an item there is no settings link for this module on admin/config/modules.Comment #59
seutje CreditAttribution: seutje commented@52: how exactly do u see this? something like this perhaps (using locale as example):
or would we only specify a single path for every type?
maybe it'd be better to make a metalinks array? like this maybe?:
or is pretty much all this info considered "meta"?
Comment #60
eigentor CreditAttribution: eigentor commentedIf this shall have a chance to be committed today, the rewrite with info file is out of scope.
Following stBorcherts approach, #51 looks good.
Hence I mark it RTBC.
Comment #61
eigentor CreditAttribution: eigentor commentedattached: a clean set of the icons as in #38
Comment #62
eigentor CreditAttribution: eigentor commentedsuper. Now the patch does not apply anymore, system module is changing on an hourly basis :P. I wonder if a reroll this evening makes sense. This is a hopeless race with all the other patches that get in.
Stefan? Once more?
Comment #63
pwolanin CreditAttribution: pwolanin commentedno - both chx and I object to this approach.
I would consider this a usability bug personally, but up to Dries/Angie if they want to look at further patches.
The permissions link can surely be auto-generated if the module implements hook_perm().
How many settings link would we support per module? for a 1st pass in D7 I'd support just one in the .info file.
Comment #64
stBorchertLast try from myself.
I thought about putting the settings link into .info before I found the solution with
MENU_SETTINGS_LINK
but decided not to do so (because it felt somehow ugly to me).As there are no other approaches yet (as patch!) this is the only way in D7 to do this (and its a working solution).
The number of settings links on this page should be restricted to 1 but this can be done in bugfixing / follow-up patches.
Comment #65
pwolanin CreditAttribution: pwolanin commentedpatch has a lot of unrelated local changes from the other patches. Try applying your .info patch to a clean checkout (e.g. do
cvs diff | patch -p0 -R
).Comment #66
stBorchert@pwolanin:
No, it doesn't. Its a reroll of the "old" patches, not a patch that puts the link into .info!
I don't like the .info-solution so there will be no patch from me implementing this.
Stefan
Comment #67
stBorchertI'd like to get some review from other people on my proposed solution (thats *not* writing the link to the .info file but using
MENU_SETTINGS_DEFAULT
Comment #69
stBorchertupdate.module has changed so this patch needs a reroll.
Comment #70
Dries CreditAttribution: Dries commentedPersonally, I'm _not_ a fan of storing this in .info files either. The .info files should not become a settings file, especially if no one is supposed to change these settings.
Comment #71
pwolanin CreditAttribution: pwolanin commented@Dries - we gave a hook to alter the settings in .info files. A link to the settings should be stable fir any modules, so I don't understand your comment as to why this is a bad solution.
Putting this in the router get a strong "no" from me.
Comment #72
pwolanin CreditAttribution: pwolanin commentedComment #73
eigentor CreditAttribution: eigentor commentedO.K. I think we are a stuck here in a bit of an emonional discussion. Both sides saying no and an even stronger no can't be a way.
To pull this off, the advantages and disadvantages of both approaches should be discussed. And if the .info Approach is the better one, it needs a patch.
Comment #74
dman CreditAttribution: dman commentedIt's pretty much a toss-up, but conceptually, I'd say .info files contain clean meta-info that would be useful to aggregate before installing the module - the version number, the dependencies, the description of what it does.
The exact path of the settings URL is an implementation detail that is not relevant until after the module is installed. It could be manipulated by code even. So I'd expect to see this in the _menu hook.
Help pages are done through code, and I don't think we'd expect to see the link to the help pages in the info .
Comment #75
pwolanin CreditAttribution: pwolanin commentedThe modules page is built using the .info file, so to me this seems pretty natural and an easy implementation. The .info file also contains version info, etc, that's used for update status, so it's not only useful before you enable the module.
This patch is working, but does not yet have all the paths added to .info files. Setting to needs review for testbot, but it's not rtbc for at least that reason.
Repackaged the icon set from attachments above also. The css is the same as the last patch above - not my realm so I just used it.
Comment #76
yoroy CreditAttribution: yoroy commentedtest bot
Comment #77
yoroy CreditAttribution: yoroy commentedWorked on this with pwolanin in IRC.
- Works as advertised. yay.
-order should be settings, permissions, help
- use a table cell for each individual icon (= consisten with how we show operations links)
There's some decisions to made for the paths to be used for some links. Can we have a list to work from? Enable all core modules and make notes?
Thanks for this.
Comment #78
pwolanin CreditAttribution: pwolanin commentedI put in reasonable paths for all modules I think. Reworked the ordering and stuffed the icons inside TD elements. Tweaked css a little, though someone else may have some other ideas.
icons are the same as above
Comment #79
Dries CreditAttribution: Dries commentedSorry, the .info file is not the place to store meta-information about links. It's limiting and prone for errors. For example, we should not display the settings link if the user does not have access to the settings page -- that would be inconsistent with the rest of Drupal, and makes the modules page a lot less useful.
Comment #80
eigentor CreditAttribution: eigentor commentedIs there any third alternative?
Being no coding genius, it is hard to understand what the technical drawbacks of the methods are.
I would guess that storing the link in the .info file makes it hard to change that path temporarily and dynamically as you would have to store any change to the .info file? I might be mistaken, though. Drupal dynamically writing settings to files (other than settings.php) also does not feel good to me, when I think about the write permissions nightmare that has to become overcome here #418302: Copy default.settings.php to settings.php during install IFF webserver owns files (FTP on shared hosting) - can we ever be sure that Drupal can write to any settings file? But Maybe I am wrong again and overwriting the path can be done in a dynamical way that is different. But in any case paths in drupal are alterable and it might make sense to do so in my_fancy_crazy_module.
What appears clear to me is that we miss a mechanism to add a hierarchy to MENU_LOCAL_TASK that can be read by other modules. Given that this mechanism has very few use cases (has it any other than the actual one we are dealing with?) now we are looking for a solution that is least intrusive and does not produce overhead.
Is it that Stefans patch does something unusual and feels hackish, because MENU_LOCAL_TASK is not meant to have any additional attributes?
Comment #81
pwolanin CreditAttribution: pwolanin commented@Dries - Yoroy and I agreed that in fact we *must* display the link to the settings page even if they user does not have access to it. The most common wtf after installing a module is not setting the permissions so you can't access the settings page. If you have the link and it's a 403, that's a very useful clue that you need to configure the permissions. The rare case where a user has power to enable a module but not administer permissions this would be a clue that they need to talk to the next guy up the chain to configure the module.
I don't see why putting it here is any more limiting or error prone than putting it in a hook. Discussed with Yoroy that the goal is to expose one and only one link per module at most, so for that use, the implementation is totally sufficient. I can think of other implementations - e.g. a set of menu links and the module should save a link to that menu when it's installed - but that seems far worse in terms of DX for no real gain compared to this. We have a alter hook for .info data, and hook_form_alter, which are 2 distinct opportunities for altering what's on this page.
Comment #82
eigentor CreditAttribution: eigentor commented@pwolanin O.K. sounds good.
Most of what you say also applies for the other approach, so please explain technically, why stBorcherts approach is inacceptable.
Comment #83
pwolanin CreditAttribution: pwolanin commentedon principle, the router should hold data relevant for serving a path, or checking access to a path. This would be neither of those, and so I would consider it a violation of the router's design.
In addition, that approach would seem to require a variety of hacks to try to make a one-to-one connection between a module and this flag on one or more router items.
Also, this method adds zero overhead to the operation, since we already get the .info data - we don't need to call another hook or anything. If for some reason this approach isn't satisfactory, I'd then think the remaining option is a hook instead of violating the router.
Comment #84
webchickI haven't reviewed all the comments (nor the code) here yet, just the comments related to where the links should be defined.
I find myself agreeing with Dries in #79. The point about access denied in #81 is very valid in Drupal 6 and below, but Drupal 7 ships with an administrator role, so the chances of this situation occurring in Drupal 7 is *drastically* reduced. I don't think it's worth adding inconsistency to the way links are handled in Drupal for this one edge case.
Comment #85
Dries CreditAttribution: Dries commentedYoroy and I agreed that in fact we *must* display the link to the settings page even if they user does not have access to it. The most common wtf after installing a module is not setting the permissions so you can't access the settings apge.
There are a lot of places where we can introduce this discovery pattern then. I don't see why the modules page is fundamentally different from any other administration page where things are protected by a permission.
Comment #86
pwolanin CreditAttribution: pwolanin commentedI think it's fundamentally different because you can only see this page if you have can administer the site configuration. Does the administrator role automatically get all new permissions? It would seem not from my local install, in which case I stand by my position.
honestly, I don't care much about this issue - I just rolled the patch to demonstrate an implementation that is (imho) less broken, and since this seemed to be a significant usability issue. Feel free to rip out the settings path part completely and just keep the added link to permissions.
Comment #87
eigentor CreditAttribution: eigentor commentedAh, the usecase with not having the permission to use a module though you have permission to change permissions - yes, this is a well known wtf in the few cases I don't work as User 1 and it keeps tricking me every time...
Admin role in core should help it, but it still will be there.
Stefan, is this doable with the router approach?
Hm, read that bit again, and do not fully agree. If an experienced user gets a 403 he _might_ think this is because he did not set the permissions. I normally recognize when frantically looking for a settings page and not finding one (especially when I know there normally is one).
A User rather new to drupal will probably just say "wtf?" and curse Drupal for broken links. Am not so sure this group of users (that are the target of all the D7UX stuff) might ever come to the idea he has to set the permissions. As this user almost always works as user/1, he will hardly see it.
To do the "you have to set permissions" think in a clean way, an advanced concept would be needed that outruns the scope of this patch. The "new" group we wanted to introduce in the "big" redesign of the modules page was one of those, a module could have been new as long as you did not click the permissions link or something similar, in the opening tab we would have had the space to even write a notice "you have not set permissions, you have not set settings".
But with this barebone interface we are introducing, a wanted 403 might bring even more wtf than it reduces. And yes, the use-case is rather marginal. Not too many people are Admins but do not work as user/1. All that do should hopefully know the caveats of that. (well, sure... hopefully).
The only way this could make sense is if the 403 page sais "you must configure permissions to be able to view this settings page. " The "configure permissions" would have to be a link to the settings page jumping to the right anchor.
Indeed this might be harder or impossible with the router solution, since a link that you do not have access to is by all means invisible as far as my knowledge goes.
Comment #88
pwolanin CreditAttribution: pwolanin commentedIt would be easy enough to check the access for each link (e.g. call http://api.drupal.org/api/function/menu_get_item/7 and check $item['access']), and then if there is no access, the settings link could send them to another page with instructions and even a link to the right module's permissions using a little GET param.
Comment #89
eigentor CreditAttribution: eigentor commentedSo what do we do about this issue.
Thinking it over again, and given the fact that the .info file will be never changed (alters and stuff won't be written into the file) the differences between the two approaches do not appear so big.
Both are not really clean, since they need to introduce something that is just not doable with the router or the .info file as it is and thus break existing concepts for each of them - which leads to someone objecting.
If this would to be really thorough, other use cases for both of the introduced concepts had to be thought over, and the one with the biggest potential for other use cases wins.
But as it is now, we will not have a solution, which would be very sad. I just want to get the UI Improvement in :(
Comment #90
heather CreditAttribution: heather commentedI think this would be an important and useful improvement. Is this issue going to happen?
A link to configuration, in the context of module enabling page would be really useful, and it would give users easy access to module configuration. Currently the link to 'administration by module page' is the one link to show people where to configure each module (in intro text).
I am getting more and more concerned about the help text available for each module, and the intro text throughout. We've been cutting down on UI text, and we could meet the user half-way by introducing easier access to common needs: configuration per module being a specific case.
Looking at the Forum, #613272: Forums not useable out-of-the-box: disabled comments, no forums for example, it's not entirely obvious where to go after you enable the module. And a user can easily create an error by adding a topic without setting the forum/container.
Here's an old but related issue: #89205: Usability: Better message on module activation/deativation
Comment #91
pwolanin CreditAttribution: pwolanin commented@eigentor or @heather - feel free to re-roll with access checking + directing to a help page using the .info, or a hook, or something else. I see hacking this into the router as simply unacceptable from an architecture standpoint.
Comment #92
yoroy CreditAttribution: yoroy commentedre: #79, 81, about showing the permissions link: Thought about it some more and I'm changing my position on that a bit:
It should not actually be a link. Willfully linking to something a user doesn't have access to is not so nice. But we don't need to actually link to show that there might be a permissions issue. Can we show a 'dimmed' (needs design) state of the permissions icon that communicates that there are actual permissions for this? We want to show a hint of permissions being part of the mix here but not actually link to them if you can't access them.
Comment #93
pwolanin CreditAttribution: pwolanin commented@yoroy - the gray is pretty dimmed already... but certainly something like this is possible. Maybe make the icons blue again, or a a little bolder? or make the disabled ones a little yellowish?
Comment #94
hass CreditAttribution: hass commentedIt may be a bit easier to style and have a fall back if the operation tasks become a list with a custom bullet per list item (css class). In such a case module are also able to define more than one settings link and nobody need to hover the icons first to figure out what they mean. This may be better for accessibility.
Comment #95
c960657 CreditAttribution: c960657 commentedUsing icon links on a page like this seems inconsistent with the rest of the admin pages in core. Icons may very well be a good idea, but in that case we should use them on similar pages too, e.g. admin/structure/taxonomy, admin/structure/taxonomy.
Comment #96
Dries CreditAttribution: Dries commented@eigentor This is a UX patch and it can still make it into D7. We won't use the .info files though.
Comment #97
pwolanin CreditAttribution: pwolanin commented@Dries - the earlier patch trying to mis-use the menu system is a "won't fix" - so if you are calling the current patch a "won't fix", then someone needs to roll a patch using a hook, or we should just close this issue or push to 8.x
Comment #98
eigentor CreditAttribution: eigentor commented@dries I think I gotta talk to pwolanin on irc. We somehow got into an implementation war, when any of the two implementations feels quite unobtrusive to me...
Comment #99
eigentor CreditAttribution: eigentor commentedTalked to catch and this confirmed my impression that both approaches are not ideal, which may cause our lack of consensus.
Obviously there existed a hook settings up to Drupal 4.7 http://api.drupal.org/api/function/hook_settings/4.7
How about reviving it, which might have the advantage to be usable for quite some other scenarios also? This would not be an API change, but an API addition.
Comment #100
stBorchertHm, I should rename my account to "someone" :-)
Here is a new try which introduces
hook_settings_link
(don't nail me for the name, I didn't found a better one).To test use one of the icons attached in several comments above.
Comment #102
stBorchertHm, there was a strange character in block.module.
Fixed this.
Comment #103
stBorchertAnd especially for eigentor a version with a column for each operation.
Comment #104
eigentor CreditAttribution: eigentor commentedPatch installs like a charm. Ah, fixed positions for the icons grace to table cells, yummy...
Now one could discuss one's head off which icon should go first. At the moment it is help, I'd opt for settings and putting help last, keeping permissions in the middle.
Comment #105
Bojhan CreditAttribution: Bojhan commentedI think this is actually a good line already, help - permissions - settings. We should optimize for useage, settings on the right is useage.
@pwolanin would love your feedback on this issue
Comment #106
Damien Tournoud CreditAttribution: Damien Tournoud commentedThis is definitely a no-go:
<span>
will be made by the theme itself. "element-invisible" is not an intrinsic property of the text.This review is powered by Dreditor.
Comment #107
Damien Tournoud CreditAttribution: Damien Tournoud commentedBy the way, I actually happen to like the idea of using the menu *links* for displaying those (not the menu *router*, as in previous implementations). This ad-hoc hook approach makes me run screaming.
Comment #108
stBorchertIt would be great if one of the persons running away would stop, sit down for a while and come back with a working solution.
Comment #109
TheRec CreditAttribution: TheRec commentedSubscribing.
Comment #110
pwolanin CreditAttribution: pwolanin commented@Damien - I'd be ahppy to use menu links if we can think up some reasonable DX for getting the links into the table.
e.g. we could have a menu jsut for these links, and then each module would have to save its links on hook enable (or hook install)?
Note that the menu_links table has a module column already
Comment #111
sun-1 for introducing a hook that contains the same values that are already specified elsewhere.
Until we split hook_menu() into hook_menu_router() and hook_menu_link() in D8, I see less of a problem of adding a property to hook_menu().
1) This property, we do not save in {menu_router} or {menu_links}. It's just a single flag per module.
2) Upon rebuild of menu router, we iterate over all items anyway. While doing so, we grab 'path', 'title', and 'description' from all items that have the flag, keyed by module. This list, we store as variable.
3) On admin/structure/module, we simply grab this list to display links to settings pages.
Alternatively to 2), we could store even less in the stored variable, namely $module => $path. On admin/structure/module, we simply query the corresponding links.
Comment #112
pwolanin CreditAttribution: pwolanin commented@sun - store as a variable? if you want to go this route (which I still don't like much), we should just save an extra menu link for each as DamZ suggests in a menu jsut for this purpose?
Comment #113
sunHm. Why do we want to duplicate paths/links? Whatever additional data we store, we also need to maintain. So this would mean to truncate all these duplicated links in that custom/hidden menu when we rebuild the router, and re-fill it afterwards. I still do not see why we would want to duplicate any data. All we need is a 1:1 relationship from $module to $settings_path.
Attached patch may provide some clues.
Comment #115
pwolanin CreditAttribution: pwolanin commented@sun - if that's all we want... then the .info approach should be good enough.
Comment #116
sunAlrighty, this would be the fully working implementation.
Comment #117
sunAnd of course, we want to display the description as link title.
Comment #118
seutje CreditAttribution: seutje commentedI like how nice and tiny this is, one tiny weirdness though: the Configure settings link of the Color module points to /admin/appearance/settings, but the global settings page doesn't show any color settings, only themes that implement it show it.
I don't suppose we could make that link to the active theme's settings page if it implements Color stuff and otherwise just don't show it?
oh and this shows that the menu entry for dashboard's settings page doesn't have a description, which causes it's Configure settings link to have an empty title, I guess menu entry description should be solved somewhere else, but perhaps drop the title attribute when there is no description for the menu entry?
Comment #119
TheRec CreditAttribution: TheRec commentedIsn't Dries against using .info files for this task ? Maybe he changed his mind, but I think he has a pretty good point in #70 too.
Comment #120
sunI've read through the comments for the first time now.
I do not understand the objections of putting this information into the .info file. We need a 1:1 relationship between "module" (which has no other entity or thing we could attach info to) and "settings path". The settings path is a router path, not a menu link. And the settings path is not alterable. You cannot say "oh, but I'd like this module's settings rather there", because "there" you won't find the module's settings.
The implementation is not a setting, but meta data - a pointer to a module's settings path. Just like the "dependencies" is a pointer to the module's dependencies on other modules. No one is supposed to change these -- although you could even alter those via http://api.drupal.org/api/function/hook_system_info_alter/7
There is only one settings path per module, and we want to use the link description from the already registered menu item for the settings path.
1) Using a property in hook_menu() would mean that there could be more than one settings path. No option.
2) Using a new hook would mean that we would duplicate the information from the existing menu item that's registered in hook_menu(). Doesn't make sense.
3) We need a 1:1 relationship between module and module settings path, and we also need to check whether the current user has access to administer the module's settings. Hence, we need to check the menu anyway.
Comment #121
pwolanin CreditAttribution: pwolanin commented@sun - yes, I'd agree that this is not a "setting" but rather meta data, which is why I suggested the .info file.
Comment #122
sunSo what's holding this up from RTBC?
Comment #123
TheRec CreditAttribution: TheRec commentedI'd say that if Dries changed his mind, it shouldn't be a problem, but we'll have to get his opinion about it as he clearly disagreed on doing it this way (I forgot to mention another one #79 : Note: I highlighted the important part in the quote).
There are few things that changed between stBorchert's last patch and yours :
You're messing with the $Id of filter.info.
'#type' => 'link'
, but chances are it passes through drupal_attributes which handles class names as array now.'#type' => 'link'
;)). See #6 and #7 and #106 which somewhat implies that we should create a specific CSS class with a semantic name for the<span>
used to "hide" the text. It should reuse the properties of "element-invisible", so it stays accessible to the screen-readers.I would strongly suggest that we use an unordered list to display the links as it is a list of administrative links. stBorchert did few versions like that, but honnestly this can always be settled later. The inconvenient with an unordered list is that it would be way more difficult to have an emty space when one of the links is not displayed. But at least it would be semantic which in my opinion is more important than the eye candy.
And last and optional, if we have time, maybe we should also add a test case so it checks that the link is present when modules are enabled and not present when they are disabled ? But I suspect you'll call that test-bikeshedding ;)
I attached a screenshot to show how the page looks with the patch in #117, icons are present but as mentioned above they do not display because of wrong CSS class names.
This review is powered by Dreditor.
Comment #124
eigentor CreditAttribution: eigentor commentedAlthough I liked Sun's first implementation of #113 better - well, is it that big a difference. Wanna get the functionality in.
@TheRec -1 for unordered list. So happy to have each setting in its place which is done dead simple by table columns. Let's keep that.
If we go with icons only, short or long titles can be discussed in a follow-up patch. Given the fact that we get #606490: Drupal GPL icons - a softfacade initiative in, I am ok to go with text for now. But please, name it "Help, Permissions, Settings" instead of adding the redundant words "More" and "Configure" that make it take up two times as much real estate.
Rerolled with these changes. Like this it would get an RTBC from me.
Comment #125
sunNope, that doesn't belong to the CVS Id keyword and is simply a bad character that somehow sneaked in there.
Right. I forgot to update the class names, and the value for 'class' should always be an array now. Thanks for catching that!
As eigentor mentioned, we can defer the question whether to use icons or not here to a separate issue. In case that happens, then the link titles will be hidden via CSS and at the same time, the links will be turned into icons, based on the already existing class names. That belongs into the 1x1 toolbox of themers.
Nope, because that would result in a totally unreadable output. The table cells form a grid that can be recognized and understood very quickly.
Comment #126
Dries CreditAttribution: Dries commentedI still don't like storing this in the .info file (where does it end?), but I think it is more important to get this patch in than anything else.
I think 'settings' should be renamed 'configure'. If I click the settings link for the dashboard module, it doesn't give me any settings. It let's me configure the dashboard. The same is true for many other settings links.
Comment #127
TheRec CreditAttribution: TheRec commentedI was only trying to locate the precise line which contained the error, I did not imply that you modified it on purpose ;)
Ok then so be it for the list of operations. The grid is indeed more clear, unfortunately it is less semantic but I think we can live with that ;)
I agree that "Configure" is more appropriate and clear than "Settings" in certain cases and in the other cases "Configure" makes as much sense as "Settings". Also "Configure" is used many times in the core for this type of operation. For consistency, I also changed the name of the variable in the module .info. I was not sure if it was better to call it "configuration" or "configure", I went for the latter.
Comment #128
sunIt was mentioned before that we want to remove this one.
1) We still need to turn the value of 'class' into an array.
2) Those CSS class names should be prefixed with 'module-link', plus suffix help|permissions|configure.
I'm on crack. Are you, too?
Comment #129
TheRec CreditAttribution: TheRec commentedI assumed the things I reviewed were fixed ;) My bad. Anyways I would have left also the color.info changes so it doesn't really matter... Here's a re-roll with all the suggested changes by sun in his previous message.
Comment #130
eigentor CreditAttribution: eigentor commentedFor anynone wanting to try this out with icons: "settings.png" needs to be renamed to "configure.png".
To make this easier, icons with correct names attached as .zip file.
Works.
The classes appear to be turned into arrays, color module not to be found anymore.
RTBC.
Comment #131
yoroy CreditAttribution: yoroy commentedI understand that we're deferring on the use of icons only, which I'm ok with. Here's one more screenshot of what it looks like with this patch.
UXteam says RTBC, maybe one more 'yay' for the code?
Comment #132
webchickWell this looks pretty effing awesome, other than that .info file thing gives me the heebie jeebies. But it sounds like this has Dries's ok. I'll leave for him to commit, and go after it tomorrow night if it's still hanging around.
Comment #133
mgiffordI do like the usability of this. Really want this to get into core! At the moment though I'm not sure how a keyboard only user can get to the Help, Permissions & Configure links.
I like that they are there, but tabbing through the site just jumps between checkboxes.
As with this issue here - #467296: Accessibility improvements for vertical tabs - we need to have way to add more navigation options for keyboard only users.
Comment #134
Dries CreditAttribution: Dries commentedAlright, committed to CVS HEAD. Thanks.
Comment #135
sunI love you. :)
Comment #136
chx CreditAttribution: chx commentedSniff. I was not vocal enough that we needed admin/by-module/$modulename and link there and nowhere else and then we can have permissions, configure and any number of links there. The advantages are numerous a) we already have this code, just needed to move the section to its own page b) noone needs to learn another way of defining a path.
I thought Dries shut this patch down for good in http://drupal.org/node/598758#comment-2161952 and http://drupal.org/node/598758#comment-2238428 and by the time I look again, it's in. Oh well. I know. Rules have changed and I was told plain that these UX things are not for me and I should shut up. I still won't.
Comment #137
chx CreditAttribution: chx commentedExample. Some module has a generic screen for the generic settings but also it has specific settings for each node type. What now? One link is not enough. It's only in this crazy mindset that we call D7UX that certain things are "enough", that certain workflows happen and nothing else.
Comment #138
TheRec CreditAttribution: TheRec commentedchx: I also raised the posts you're talking about (not because I don't like this solution, just because it was raised before). Dries' answer and acknoledgment is in http://drupal.org/node/598758#comment-2267146
Maybe I'm a bit tired now, but I don't quite get the concept of "admin/by-module/$modulename", could you explain it (again?) please ?
Comment #139
sunI can't understand how you can even think of promoting awkward code like http://api.drupal.org/api/function/system_get_module_admin_tasks/7 ...
Comment #140
yoroy CreditAttribution: yoroy commentedExcellent. One, if not the, most important ux improvements to go in.
Comment #141
chx CreditAttribution: chx commentedMove one section to one page. What I attached is admin/by-modules/forum. Easy to code, easy to link...
Comment #142
Bojhan CreditAttribution: Bojhan commented@chx It has nothing to do with D7UX, there is simply no great solution to this problem yet. I think this is a good solid direction, and we should continue to work on it - if you see opportunities to make it better do so. But I don't think that the "there are several setting pages with equal importance" should be given priority over the massive usability issue of not finding any module its settings. Its an edge case that is hard to tackle, although your proposal does - it also exposes another problem, of creating a layered IA - where this page becomes a jumping board (which it wasn't supposed to be).
It should be possible however, to implement your solution to these edge cases - it should actually be just a matter of a link? We can just create a link to a per-module block, on the settings icon for those modules who have several settings?
Anyway, really glad we got this in - as hard as it may seem so late in the process, we need to be aware that this solves a highly critical issue.
Comment #143
catchJust discussed this with Bojhan and yoroy in irc. I think what chx is suggesting is something like this - added my own embellishments
1. admin/by-module doesn't generate any pages for modules, only blocks but it could, at admin/by-module/$module - and system.module could build these magically on behalf of all modules.
2. We can leave the settings link/icon on the modules page exactly how it is, and default it to linking to admin/by-module/$module
3. If admin/by-module/$module only contains one link - we can redirect to that the same as we do for node/add when it only contains one content type - yoroy and Bojhan were both concerned about an additional click step to a landing page with one link on it, which would suck.
4. As well as all the above, we can otherwise leave things how they are in HEAD, so that module authors can specify a single page which they want linked from here. However you'd get 2/3 for free if you don't do anything.
Comment #144
mgiffordI retested what went into core in #134. Tabbing is working fine to get to the additional links. Not sure what changed or if perhaps it was a caching issue in my previous test.
I've just looked at this page: /admin/config/modules#main-content
It would still be useful to have better keyboard navigational tools as there are now a bunch more links required to get down the page to enable/disable modules. However, think that's bigger than this issue at the moment.
I don't see any other accessibility challenges with this issue at this time.
Comment #145
webchickThanks for verifying, mgifford.
chx/catch's plan at #143 makes sense to me, as well. I like the API change part of this being optional.
Which, btw, needs to be documented in the module upgrade guide under UNSTABLE-11. Ugh.
Comment #146
chx CreditAttribution: chx commentedStill the API change must be rolled back, there is nothing in the plan that justifies another way of defining links. Yes, I can live with admin/by-modules/$modulename simply redirecting if there is only one link.
Comment #147
webchickTo summarize for the UX folks, here is what's being proposed:
1. We remove the ability to set a single "config" link in your .info file. Not only is it extremely odd to have to define admin paths in two places, for some modules (such as Panels, Project, etc.) a single admin screen is often woefully insufficient. (No impact on UI)
2. The admin/config/modules screen stays the same; you still get help, permissions, and configure links next to any module that has them. The difference is that "Configure" instead of pointing to admin/config/blah/dee/blah now points to admin/by-module/MODULE:
3. When you click "Configure" one of two things will happen:
a. In the case of a module such as Filter module, that only defines a single configuration page (admin/config/content/formats), you will be taken directly to that configuration page:
b. In the case of a module such as Search module, which defines multiple configuration pages, you'll be taken to a page that shows a list of links like this:
(Note to implementors: This is different than admin/by-module in that we remove the help and permissions links, and put the name of the module in the help text at the top.)
Let's see what Bojhan, yoroy et al think. I could argue either way on this. I really like that it cleans up the implementation, but OTOH from a user perspective it might be really jarring to get two wildly different looking types of pages when you click the same link on different modules.
Comment #148
seutje CreditAttribution: seutje commentedso... more HTTP requests, less content, more empty pages?
but I guess it could solve the problem with color...
Comment #149
eigentor CreditAttribution: eigentor commentedThere is a followup to this issue: #638894: Respect Toolbar height when jumping to Anchor on Admin page
Anyone who applies this patch and clicks on the permissions link in a module's row sees that ... oops it does not jump to the anchor correctly because the jumping does not respect the height of the toolbar. Not nice.
Comment #150
chx CreditAttribution: chx commentedI posted one patch and will write another (for the configuration solution above) #638912: Point the permissions link to the module
Comment #151
cburschkaJust as a reminder, the CSS code currently in CVS calls for a "misc/permissions.png" and "misc/configure.png", both of which are missing and still need to be added if this patch is going to stay in.
Comment #152
webchickThanks for the reminder. I committed those images, as well as the grey help.png that was in #130.
Comment #153
mgiffordJust going through old issues here. Does the documentation still needs to be done still.
After doing a quick review with http://wave.webaim.org/toolbar
The only thing that jumped out was the same issue here #49428: Include node title in "Read more" link for better accessibility and SEO - which is a WCAG 2.0 A level issue
Help Permissions Configure are useful, but it would be more useful if they were tied to a module name. This can be done much has has been suggested with the issue noted above.
Comment #154
Everett Zufelt CreditAttribution: Everett Zufelt commentedI am curious what the current status of this issue is, what needs to be done for it to be resolved.
@mgifford
I haven't tested, but I expect that the purpose of the links is determinable by context (table row).
Comment #155
mgiffordThe link is nicely seated in the table row, so it can be identified that way which does seem to fit inside of the framework "the link text together with its programmatically determined link context". So looks like this is addressed from an accessibility standpoint.
Comment #156
webchickI think this is fixed. If there are still follow-up issues we can deal with them in follow-ups.