Index: kaboutdialog.cpp
===================================================================
--- kaboutdialog.cpp	(revision 480303)
+++ kaboutdialog.cpp	(working copy)
@@ -95,12 +95,14 @@
   KURLLabel *kurl = static_cast<KURLLabel *>(mText[1]);
   kurl->setFloat(true);
   kurl->setUnderline(true);
+  kurl->setMargin(0);
   connect(kurl, SIGNAL(leftClickedURL(const QString &)),
 	  SLOT(emailClickedSlot(const QString &)));
 
   kurl = static_cast<KURLLabel *>(mText[2]);
   kurl->setFloat(true);
   kurl->setUnderline(true);
+  kurl->setMargin(0);
   connect(kurl, SIGNAL(leftClickedURL(const QString &)),
 	  SLOT(urlClickedSlot(const QString &)));
 
Index: kurllabel.cpp
===================================================================
--- kurllabel.cpp	(revision 480303)
+++ kurllabel.cpp	(working copy)
@@ -21,6 +21,8 @@
 #include <qtimer.h>
 #include <qtooltip.h>
 #include <qpixmap.h>
+#include <qpainter.h>
+#include <qstyle.h>
 #include <qapplication.h>
 
 #include <kcursor.h>
@@ -79,6 +81,8 @@
   setFont (font());
   setCursor (KCursor::handCursor());
   setLinkColor (d->LinkColor);
+  setMargin(3); //better default : better look when focused
+  setFocusPolicy( QWidget::StrongFocus ); //better accessibility
 }
 
 KURLLabel::KURLLabel (QWidget* parent, const char* name)
@@ -88,6 +92,8 @@
   setFont (font());
   setCursor (KCursor::handCursor());
   setLinkColor (d->LinkColor);
+  setMargin(3); //better default : better look when focused
+  setFocusPolicy( QWidget::StrongFocus ); //better accessibility
 }
 
 KURLLabel::~KURLLabel ()
@@ -330,8 +336,40 @@
     setLinkColor(d->LinkColor);
     return true;
   }
-  else
-    return QLabel::event(e);  
+  else if (e->type() == QEvent::Paint) {
+    QPaintEvent* pe = static_cast<QPaintEvent*>(e);
+    bool result = QLabel::event(e);
+    if (result && hasFocus()) {
+        QPainter p(this);
+        QRect r(contentsRect());
+        int hAlign = QApplication::horizontalAlignment( alignment() );
+        int indentX = (hAlign && indent()>0) ? indent() : 0;
+        QFontMetrics fm(font());
+        r.setWidth( QMIN(fm.width(text()), r.width()));
+        if ( hAlign & AlignLeft )
+            r.moveLeft(r.left() + indentX);
+        if ( hAlign & AlignCenter )
+            r.moveLeft((contentsRect().width()-r.width())/2+margin());
+        if ( hAlign & AlignRight )
+            r.moveLeft(contentsRect().width()-r.width()-indentX+margin());
+        int add = QMIN(3, margin());
+        r = QRect(r.left()-add, r.top()-add, r.width()+2*add, r.height()+2*add);
+        style().drawPrimitive( QStyle::PE_FocusRect, &p, r, colorGroup() );
+    }
+    return result;
+  }
+  else if (e->type() == QEvent::KeyPress) {
+    QKeyEvent* ke = static_cast<QKeyEvent*>(e);
+    if (ke->key() == Qt::Key_Enter || ke->key() == Qt::Key_Return) {
+      setLinkColor (d->HighlightedLinkColor);
+      d->Timer->start (300);
+      emit leftClickedURL ();
+      emit leftClickedURL (d->URL);
+      ke->accept();
+      return true;
+    }
+  }
+  return QLabel::event(e);  
 }
 
 
