I've added a comments page that lists the most recent comments to the site. I used to have a page like this in the old system, but I'm trying a different format. The problem with the old view was that the straight list of all comments and their content made it hard to follow a conversation. This new view uses the :hover CSS Selector to make the comment appear to the right as you hover your mouse over each link.
There is one major and one minor problem with this view. The minor one is that this only works in modern browsers, and by modern I mean not Interner Explorer. The second, and larger, problem is the lack of any user-interface clues of the capability. That is, unless I told you that hovering over the links will do something, you would never know. I'm pretty sure that hurts accessibility too.
Posted by joe on 2007-01-19
Posted by Andrew Sidwell on 2007-01-20
Posted by Sam Ruby on 2007-01-20
The problem there was that a comment would appear that contained a link, and the next time you pressed tab the focus would shift to the link. Of course, that would shift the focus away from the comment title, so the content would disappear. Did you watch "The Lost Room"? It's just like that.
Anyway, that problem I fixed by setting display:none on all links in the comment, which is crude but effective. Maybe there is a way to set z-index or something else to move that link to somewhere else in the tab order which would be better.
Posted by joe on 2007-01-20
As a partial solution I changed the background color to white, that way they would overlap, but not overlay. Not optimal, let me know if you think of anything better.
Posted by joe on 2007-01-20
- You can't scroll down the page to simply scan all comments very quickly.
- You can't read comments that are taller than the window -- trying to grab the scrollbar makes the comment go away.
- How exactly does this make it easier to follow a conversation? There's no obvious threading, and no date nor poster name in the list column.
Posted by ralfoide on 2007-01-20
The five minutes is from the 'updated' time on the comment. So yes, you can keep pressing update and keep a comment open forever. The hope is that eventually everyone gets bored like you did.
Posted by joe on 2007-01-20
Joe, try adding this block of rules to your CSS. It should solve your overlap problem (I've only tested this in Firefox, mind you):
a.comment_title:focus + .comment_content,
.comment_li:hover .comment_content {
padding: 2em 30px 0 30px;
}
.comment_li:hover .comment_content {
z-index : 3;
}
.comment_content:after {
content : "-";
color : white;
display : block;
height : 500px;
border-top : 3px solid black;
background : white;
margin : 2em -33px 0 -33px;
}
Posted by Már on 2007-01-21
It fixes it by more effectively hiding the comments that might peek below the bottom of the currently :focus
ed (or :hover
ed) comment. It also places :hover
ed comments on a higher z-index
layer than the :focus
ed comments to make the transition between keyboard and mouse navigation more seamless.
It uses generated content (the :after
selector) to create a 500px
tall white mask with a black top border to add what might be described as a crude "outer-padding" to each comment.
You might of course want to tweak the "500px
" height value to better suit your needs - e.g. change it to a relative "em
" value, etc.
Unfortunately I have no suggestions on how to solve the problem of links within comments with just CSS - other than hiding them like you're already doing - which is crude.
I can think of three other sorts of solutions:
- Server: Disarm the links out on the server-side
- Javascript: Use Javascript to disarm the links (transmogrify them into, say,
<span class="link">
) - HTML: add a
tabindex
attribute to the comment-activation links. This will make the keyboard navigation behave more like one would expect.
Hmm... now thinking about it, I suggest you try the tabindex
method.
Posted by Már on 2007-01-22
Thanks for the explanation. I ended up using a variant of your solution, instead of adding a 500px block after the content, I just fixed the height of the comment_content, which makes :focus
and :hover
items the same size. I also added an overflow: hidden
so that things that got too large get clipped, and I moved the comment author to the beginning so it wouldn't get clipped.
Posted by joe on 2007-01-22
Posted by Aristotle Pagaltzis on 2007-01-24
Posted by Eric Larson on 2007-01-24
Only if I can find a way to do that without making it a highly efficient method of getting spammed.
Posted by joe on 2007-01-24
Your most immediate accessibility problem is that you don't display the comments while you're tabbing through the list with the keyboard. This CSS rule will add the appropriate keyboard support:
Posted by Mark on 2007-01-19