       idx = $nodes.index e.target
       idx = Math.max(idx - 1, 0)
       $($nodes.get(idx)).focus()
+
+    'focus:active .ItemView': (e) ->
+      $nodes = $('.ItemView', this.getDOMNode())
+      $nodes.not(e.target).attr('tabindex', -1)
+      $(e.target).attr('tabindex', 0)
 
   renderAddCommentButton: ->
     unless this.state?.commentEditorShown

      idx = Math.max(idx - 1, 0)
      $($nodes.get(idx)).focus()

  render: ->
    children = if this.props.model.items.length > 0
      this.props.model.items.map (item) => ItemView {item}

    if e.keyCode == 38 or e.keyCode == 75
      $node.trigger('focus:prev', $node)

  onFocus: ->
    $node = $ this.getDOMNode()
    $node.trigger('focus:active', $node)

  render: ->
    item = this.props.item
    mainLink = if this.props.externalLink then item.uri else item.screenURL()
    cls = "ItemView #{this.props.className or ''}"
    `<div class={cls} tabIndex="0" onFocus={this.onFocus} onKeyDown={this.onKeyDown}>
      <div class="meta">
        {this.renderIcon()}
        {item.title && <h4 class="title"><a tabIndex="-1" href={mainLink}>{item.title}</a></h4>}
        {item.post && this.props.full && <div class="post">{item.post}</div>}
        {item.uri && <a class="uri" tabIndex="-1" href={item.uri}>{item.uri && url.parse(item.uri).hostname}</a>}
        <Timestamp class="created" relative value={item.created} />
        <div class="creator">by {username(item.creator)}</div>
      </div>
