Index: src/bp-activity/bp-activity-filters.php
===================================================================
--- src/bp-activity/bp-activity-filters.php	(revision 11548)
+++ src/bp-activity/bp-activity-filters.php	(working copy)
@@ -207,10 +207,11 @@
 	global $allowedtags;
 
 	$activity_allowedtags = $allowedtags;
-	$activity_allowedtags['a']['class'] = array();
-	$activity_allowedtags['a']['id']    = array();
-	$activity_allowedtags['a']['rel']   = array();
-	$activity_allowedtags['a']['title'] = array();
+	$activity_allowedtags['a']['class']      = array();
+	$activity_allowedtags['a']['id']         = array();
+	$activity_allowedtags['a']['rel']        = array();
+	$activity_allowedtags['a']['data-title'] = array();
+	$activity_allowedtags['a']['aria-label'] = array();
 
 	$activity_allowedtags['b']    = array();
 	$activity_allowedtags['code'] = array();
@@ -223,7 +224,6 @@
 	$activity_allowedtags['img']['height'] = array();
 	$activity_allowedtags['img']['class']  = array();
 	$activity_allowedtags['img']['id']     = array();
-	$activity_allowedtags['img']['title']  = array();
 
 	$activity_allowedtags['span']                   = array();
 	$activity_allowedtags['span']['class']          = array();
Index: src/bp-activity/bp-activity-template.php
===================================================================
--- src/bp-activity/bp-activity-template.php	(revision 11548)
+++ src/bp-activity/bp-activity-template.php	(working copy)
@@ -1493,7 +1493,7 @@
 
 		// Setup variables for activity meta.
 		$activity_permalink = bp_activity_get_permalink( $activities_template->activity->id, $activities_template->activity );
-		$activity_meta      = sprintf( '%1$s <a href="%2$s" class="view activity-time-since" title="%3$s">%4$s</a>',
+		$activity_meta      = sprintf( '%1$s <a href="%2$s" class="view activity-time-since bp-tooltip" data-title="%3$s" aria-label="%3$s">%4$s</a>',
 			$new_content,
 			$activity_permalink,
 			esc_attr__( 'View Discussion', 'buddypress' ),
Index: src/bp-friends/bp-friends-widgets.php
===================================================================
--- src/bp-friends/bp-friends-widgets.php	(revision 11548)
+++ src/bp-friends/bp-friends-widgets.php	(working copy)
@@ -68,7 +68,7 @@
 		<?php while ( bp_members() ) : bp_the_member(); ?>
 			<li class="vcard">
 				<div class="item-avatar">
-					<a href="<?php bp_member_permalink(); ?>"><?php bp_member_avatar(); ?></a>
+					<a href="<?php bp_member_permalink(); ?>" class="bp-tooltip" data-title="<?php bp_member_name(); ?>"><?php bp_member_avatar(); ?></a>
 				</div>
 
 				<div class="item">
Index: src/bp-friends/classes/class-bp-core-friends-widget.php
===================================================================
--- src/bp-friends/classes/class-bp-core-friends-widget.php	(revision 11548)
+++ src/bp-friends/classes/class-bp-core-friends-widget.php	(working copy)
@@ -111,7 +111,7 @@
 				<?php while ( bp_members() ) : bp_the_member(); ?>
 					<li class="vcard">
 						<div class="item-avatar">
-							<a href="<?php bp_member_permalink(); ?>" title="<?php bp_member_name(); ?>"><?php bp_member_avatar(); ?></a>
+							<a href="<?php bp_member_permalink(); ?>" class="bp-tooltip" data-title="<?php bp_member_name(); ?>"><?php bp_member_avatar(); ?></a>
 						</div>
 
 						<div class="item">
Index: src/bp-groups/bp-groups-widgets.php
===================================================================
--- src/bp-groups/bp-groups-widgets.php	(revision 11548)
+++ src/bp-groups/bp-groups-widgets.php	(working copy)
@@ -58,7 +58,7 @@
 		<?php while ( bp_groups() ) : bp_the_group(); ?>
 			<li <?php bp_group_class(); ?>>
 				<div class="item-avatar">
-					<a href="<?php bp_group_permalink() ?>"><?php bp_group_avatar_thumb() ?></a>
+					<a href="<?php bp_group_permalink() ?>" class="bp-tooltip" data-title="<?php bp_group_name() ?>"><?php bp_group_avatar_thumb() ?></a>
 				</div>
 
 				<div class="item">
Index: src/bp-groups/classes/class-bp-groups-widget.php
===================================================================
--- src/bp-groups/classes/class-bp-groups-widget.php	(revision 11548)
+++ src/bp-groups/classes/class-bp-groups-widget.php	(working copy)
@@ -131,7 +131,7 @@
 				<?php while ( bp_groups() ) : bp_the_group(); ?>
 					<li <?php bp_group_class(); ?>>
 						<div class="item-avatar">
-							<a href="<?php bp_group_permalink() ?>" title="<?php bp_group_name() ?>"><?php bp_group_avatar_thumb() ?></a>
+							<a href="<?php bp_group_permalink() ?>" class="bp-tooltip" data-title="<?php bp_group_name() ?>"><?php bp_group_avatar_thumb() ?></a>
 						</div>
 
 						<div class="item">
Index: src/bp-members/bp-members-widgets.php
===================================================================
--- src/bp-members/bp-members-widgets.php	(revision 11548)
+++ src/bp-members/bp-members-widgets.php	(working copy)
@@ -79,7 +79,7 @@
 		<?php while ( bp_members() ) : bp_the_member(); ?>
 			<li class="vcard">
 				<div class="item-avatar">
-					<a href="<?php bp_member_permalink(); ?>"><?php bp_member_avatar(); ?></a>
+					<a href="<?php bp_member_permalink(); ?>" class="bp-tooltip" data-title="<?php bp_member_name(); ?>"><?php bp_member_avatar(); ?></a>
 				</div>
 
 				<div class="item">
Index: src/bp-members/classes/class-bp-core-members-widget.php
===================================================================
--- src/bp-members/classes/class-bp-core-members-widget.php	(revision 11548)
+++ src/bp-members/classes/class-bp-core-members-widget.php	(working copy)
@@ -126,7 +126,7 @@
 
 					<li class="vcard">
 						<div class="item-avatar">
-							<a href="<?php bp_member_permalink() ?>" title="<?php bp_member_name(); ?>"><?php bp_member_avatar(); ?></a>
+							<a href="<?php bp_member_permalink() ?>" class="bp-tooltip" data-title="<?php bp_member_name(); ?>"><?php bp_member_avatar(); ?></a>
 						</div>
 
 						<div class="item">
Index: src/bp-members/classes/class-bp-core-recently-active-widget.php
===================================================================
--- src/bp-members/classes/class-bp-core-recently-active-widget.php	(revision 11548)
+++ src/bp-members/classes/class-bp-core-recently-active-widget.php	(working copy)
@@ -85,7 +85,7 @@
 				<?php while ( bp_members() ) : bp_the_member(); ?>
 
 					<div class="item-avatar">
-						<a href="<?php bp_member_permalink(); ?>" title="<?php bp_member_name(); ?>"><?php bp_member_avatar(); ?></a>
+						<a href="<?php bp_member_permalink(); ?>" class="bp-tooltip" data-title="<?php bp_member_name(); ?>"><?php bp_member_avatar(); ?></a>
 					</div>
 
 				<?php endwhile; ?>
Index: src/bp-members/classes/class-bp-core-whos-online-widget.php
===================================================================
--- src/bp-members/classes/class-bp-core-whos-online-widget.php	(revision 11548)
+++ src/bp-members/classes/class-bp-core-whos-online-widget.php	(working copy)
@@ -84,7 +84,7 @@
 				<?php while ( bp_members() ) : bp_the_member(); ?>
 
 					<div class="item-avatar">
-						<a href="<?php bp_member_permalink(); ?>" title="<?php bp_member_name(); ?>"><?php bp_member_avatar(); ?></a>
+						<a href="<?php bp_member_permalink(); ?>" class="bp-tooltip" data-title="<?php bp_member_name(); ?>"><?php bp_member_avatar(); ?></a>
 					</div>
 
 				<?php endwhile; ?>
Index: src/bp-messages/bp-messages-star.php
===================================================================
--- src/bp-messages/bp-messages-star.php	(revision 11548)
+++ src/bp-messages/bp-messages-star.php	(working copy)
@@ -229,7 +229,7 @@
 		 * @param string $retval Link for starring / unstarring a message, including markup.
 		 * @param array  $r      Parsed link arguments. See $args in bp_get_the_message_star_action_link().
 		 */
-		return apply_filters( 'bp_get_the_message_star_action_link', '<a title="' . esc_attr( $title ) . '" class="message-action-' . esc_attr( $action ) . '" data-star-status="' . esc_attr( $action ) .'" data-star-nonce="' . esc_attr( $nonce ) . '"' . $bulk_attr . ' data-message-id="' . esc_attr( (int) $message_id ) . '" href="' . $retval . '"><span class="icon"></span> <span class="bp-screen-reader-text">' . $r['text_' . $action] . '</span></a>', $r );
+		return apply_filters( 'bp_get_the_message_star_action_link', '<a class="bp-tooltip message-action-' . esc_attr( $action ) . '" aria-label="' . esc_attr( $title ) . '" data-title="' . esc_attr( $title ) . '" data-star-status="' . esc_attr( $action ) .'" data-star-nonce="' . esc_attr( $nonce ) . '"' . $bulk_attr . ' data-message-id="' . esc_attr( (int) $message_id ) . '" href="' . $retval . '"><span class="icon" aria-hidden="true"></span> <span class="bp-screen-reader-text">' . $r['text_' . $action] . '</span></a>', $r );
 	}
 
 /**
Index: src/bp-templates/bp-legacy/buddypress/activity/index.php
===================================================================
--- src/bp-templates/bp-legacy/buddypress/activity/index.php	(revision 11548)
+++ src/bp-templates/bp-legacy/buddypress/activity/index.php	(working copy)
@@ -142,7 +142,7 @@
 
 	<div class="item-list-tabs no-ajax" id="subnav" aria-label="<?php esc_attr_e( 'Activity secondary navigation', 'buddypress' ); ?>" role="navigation">
 		<ul>
-			<li class="feed"><a href="<?php bp_sitewide_activity_feed_link(); ?>" title="<?php esc_attr_e( 'RSS Feed', 'buddypress' ); ?>"><?php _e( 'RSS', 'buddypress' ); ?></a></li>
+			<li class="feed"><a href="<?php bp_sitewide_activity_feed_link(); ?>" class="bp-tooltip" data-title="<?php esc_attr_e( 'RSS Feed', 'buddypress' ); ?>" aria-label="<?php esc_attr_e( 'RSS Feed', 'buddypress' ); ?>"><?php _e( 'RSS', 'buddypress' ); ?></a></li>
 
 			<?php
 
Index: src/bp-templates/bp-legacy/buddypress/groups/single/activity.php
===================================================================
--- src/bp-templates/bp-legacy/buddypress/groups/single/activity.php	(revision 11548)
+++ src/bp-templates/bp-legacy/buddypress/groups/single/activity.php	(working copy)
@@ -9,7 +9,7 @@
 ?>
 <div class="item-list-tabs no-ajax" id="subnav" aria-label="<?php esc_attr_e( 'Group secondary navigation', 'buddypress' ); ?>" role="navigation">
 	<ul>
-		<li class="feed"><a href="<?php bp_group_activity_feed_link(); ?>" title="<?php esc_attr_e( 'RSS Feed', 'buddypress' ); ?>"><?php _e( 'RSS', 'buddypress' ); ?></a></li>
+		<li class="feed"><a href="<?php bp_group_activity_feed_link(); ?>" class="bp-tooltip" data-title="<?php esc_attr_e( 'RSS Feed', 'buddypress' ); ?>" aria-label="<?php esc_attr_e( 'RSS Feed', 'buddypress' ); ?>"><?php _e( 'RSS', 'buddypress' ); ?></a></li>
 
 		<?php
 
Index: src/bp-templates/bp-legacy/css/buddypress-rtl.css
===================================================================
--- src/bp-templates/bp-legacy/css/buddypress-rtl.css	(revision 11548)
+++ src/bp-templates/bp-legacy/css/buddypress-rtl.css	(working copy)
@@ -23,6 +23,7 @@
 	3.9 - Private Messaging Threads
 	3.10 - Extended Profiles
 	3.11 - Widgets
+	3.12 - BuddyPress Tooltips
 4.0 - Media Queries
 	4.1 - Smartphones Landscape
 	4.2 - Smartphones Portrait
@@ -1764,6 +1765,94 @@
 }
 
 /*--------------------------------------------------------------
+3.12 - BuddyPress Tooltips
+--------------------------------------------------------------*/
+.bp-tooltip {
+	position: relative;
+}
+
+.bp-tooltip::after {
+	background: #fff;
+	border: 1px solid #aaa;
+	border-radius: 1px;
+	color: #333;
+	content: attr(data-title);
+	display: none;
+	font-size: 11px;
+	font-weight: normal;
+	letter-spacing: normal;
+	line-height: 1.5;
+	margin-top: 5px;
+	opacity: 0;
+	padding: 3px 6px;
+	position: absolute;
+	left: 50%;
+	text-align: center;
+	text-decoration: none;
+	text-shadow: none;
+	text-transform: none;
+	top: 100%;
+	transform: translateX(-50%);
+	-webkit-transform: translateX(-50%);
+	white-space: pre;
+	word-wrap: break-word;
+	z-index: 998;
+}
+
+.bp-tooltip::before {
+	border: 5px solid transparent;
+	bottom: -5px;
+	content: "";
+	color: #333;
+	display: none;
+	height: 0;
+	margin-left: -5px;
+	opacity: 0;
+	position: absolute;
+	left: 50%;
+	top: auto;
+	width: 0;
+	z-index: 999;
+}
+
+@-webkit-keyframes tooltip-show {
+	from {
+	opacity: 0;
+	}
+	to {
+	opacity: 1;
+	}
+}
+@keyframes tooltip-show {
+	from {
+	opacity: 0;
+	}
+	to {
+	opacity: 1;
+	}
+}
+
+.bp-tooltip:hover::before,
+.bp-tooltip:hover::after,
+.bp-tooltip:active::before,
+.bp-tooltip:active::after,
+.bp-tooltip:focus::before,
+.bp-tooltip:focus::after {
+	display: inline-block;
+	text-decoration: none;
+	-webkit-animation-name: tooltip-show;
+	animation-name: tooltip-show;
+	-webkit-animation-duration: 0.1s;
+	animation-duration: 0.1s;
+	-webkit-animation-fill-mode: forwards;
+	animation-fill-mode: forwards;
+	-webkit-animation-timing-function: ease-in;
+	animation-timing-function: ease-in;
+	-webkit-animation-delay: 0.2s;
+	animation-delay: 0.2s;
+}
+
+/*--------------------------------------------------------------
 4.0 - Media Queries
 --------------------------------------------------------------*/
 /*--------------------------------------------------------------
Index: src/bp-templates/bp-legacy/css/buddypress.css
===================================================================
--- src/bp-templates/bp-legacy/css/buddypress.css	(revision 11548)
+++ src/bp-templates/bp-legacy/css/buddypress.css	(working copy)
@@ -23,6 +23,7 @@
 	3.9 - Private Messaging Threads
 	3.10 - Extended Profiles
 	3.11 - Widgets
+	3.12 - BuddyPress Tooltips
 4.0 - Media Queries
 	4.1 - Smartphones Landscape
 	4.2 - Smartphones Portrait
@@ -1764,6 +1765,94 @@
 }
 
 /*--------------------------------------------------------------
+3.12 - BuddyPress Tooltips
+--------------------------------------------------------------*/
+.bp-tooltip {
+	position: relative;
+}
+
+.bp-tooltip::after {
+	background: #fff;
+	border: 1px solid #aaa;
+	border-radius: 1px;
+	color: #333;
+	content: attr(data-title);
+	display: none;
+	font-size: 11px;
+	font-weight: normal;
+	letter-spacing: normal;
+	line-height: 1.5;
+	margin-top: 5px;
+	opacity: 0;
+	padding: 3px 6px;
+	position: absolute;
+	right: 50%;
+	text-align: center;
+	text-decoration: none;
+	text-shadow: none;
+	text-transform: none;
+	top: 100%;
+	transform: translateX(50%);
+	-webkit-transform: translateX(50%);
+	white-space: pre;
+	word-wrap: break-word;
+	z-index: 998;
+}
+
+.bp-tooltip::before {
+	border: 5px solid transparent;
+	bottom: -5px;
+	content: "";
+	color: #333;
+	display: none;
+	height: 0;
+	margin-right: -5px;
+	opacity: 0;
+	position: absolute;
+	right: 50%;
+	top: auto;
+	width: 0;
+	z-index: 999;
+}
+
+@-webkit-keyframes tooltip-show {
+	from {
+	opacity: 0;
+	}
+	to {
+	opacity: 1;
+	}
+}
+@keyframes tooltip-show {
+	from {
+	opacity: 0;
+	}
+	to {
+	opacity: 1;
+	}
+}
+
+.bp-tooltip:hover::before,
+.bp-tooltip:hover::after,
+.bp-tooltip:active::before,
+.bp-tooltip:active::after,
+.bp-tooltip:focus::before,
+.bp-tooltip:focus::after {
+	display: inline-block;
+	text-decoration: none;
+	-webkit-animation-name: tooltip-show;
+	animation-name: tooltip-show;
+	-webkit-animation-duration: 0.1s;
+	animation-duration: 0.1s;
+	-webkit-animation-fill-mode: forwards;
+	animation-fill-mode: forwards;
+	-webkit-animation-timing-function: ease-in;
+	animation-timing-function: ease-in;
+	-webkit-animation-delay: 0.2s;
+	animation-delay: 0.2s;
+}
+
+/*--------------------------------------------------------------
 4.0 - Media Queries
 --------------------------------------------------------------*/
 /*--------------------------------------------------------------
