Во-первых, тег <tr> не является полностью block-элементом. Некоторое его поведение, такое как влияние на события мыши и подобное, не будут работать. Объясняется это еще тем (кроме откровенных необъяснимых глюков), что тег <tr> находится, как бы, "за" тегами <td>, которые расположены внутри него. Из-за этого, <td> перехватывают все события, в т.ч. и событие всплывания подсказки из атрибута title, и не дают им выполнится на элементе <tr>. Поэтому, вам придется присваивать это событие (в данном случае атрибут title) всем элементам <td>, а не <tr>.
Сделать это автоматически вы можете так (пример, возможно не рабочий):
// Находим в DOM элементы <tr>
var tableRows = document.getElementsByTagName("tr");
// Проходим по ним циклом
for(var i in tableRows)
{
var tableRow = tableRows[i];
// Получаем атрибут title (если есть)
var rowTitle = tableRow.getAttribute("title") && tableRow.title && false;
// Если что-то получено, проходим по детям элемента <tr>
if(rowTitle !== false)
{
var tableCell = tableRow.firstChild;
while(tableCell != NULL)
{
if(tableCell.nodeName != 'TD')
continue;
// Если есть внутри элемент TD - ставим title ему
try{
tableCell.setAttribute("title", rowTitle);
} catch(e) {
tableCell.title = rowTitle;
}
tableCell = tableCell.nextSibling;
}
}
}
Не ручаюсь, что код сразу заработает (так в браузере и писал), но пищу для размышлений должен дать - в этом направлении придётся поработать. Кстати, этот скрипт нужно выполнять, когда вся страница загружена в браузер, например по событиям
window.onLoad или
document.body.onLoad.