There should be no red below. 
The bordercolor attribute on a cell or row should have no effect. 
https://bugs.webkit.org/show_bug.cgi?id=101677

PASS document.defaultView.getComputedStyle(cell, null).getPropertyValue("border-top-color") is "rgb(0, 0, 0)"
PASS document.defaultView.getComputedStyle(cell, null).getPropertyValue("border-top-width") is "0px"
PASS document.defaultView.getComputedStyle(table, null).getPropertyValue("border-top-color") is "rgb(128, 128, 128)"
PASS document.defaultView.getComputedStyle(table, null).getPropertyValue("border-top-width") is "0px"
PASS document.defaultView.getComputedStyle(cell2, null).getPropertyValue("border-top-color") is "rgb(128, 128, 128)"
PASS document.defaultView.getComputedStyle(cell2, null).getPropertyValue("border-top-width") is "1px"
PASS document.defaultView.getComputedStyle(table2, null).getPropertyValue("border-top-color") is "rgb(128, 128, 128)"
PASS document.defaultView.getComputedStyle(table2, null).getPropertyValue("border-top-width") is "1px"
PASS document.defaultView.getComputedStyle(cell3, null).getPropertyValue("border-top-color") is "rgb(128, 128, 128)"
PASS document.defaultView.getComputedStyle(cell3, null).getPropertyValue("border-top-width") is "1px"
PASS document.defaultView.getComputedStyle(table3, null).getPropertyValue("border-top-color") is "rgb(128, 128, 128)"
PASS document.defaultView.getComputedStyle(table3, null).getPropertyValue("border-top-width") is "2px"
PASS document.defaultView.getComputedStyle(row4, null).getPropertyValue("border-top-color") is "rgb(128, 128, 128)"
PASS document.defaultView.getComputedStyle(row4, null).getPropertyValue("border-top-width") is "0px"
PASS document.defaultView.getComputedStyle(table4, null).getPropertyValue("border-top-color") is "rgb(128, 128, 128)"
PASS document.defaultView.getComputedStyle(table4, null).getPropertyValue("border-top-width") is "2px"
PASS document.defaultView.getComputedStyle(col5, null).getPropertyValue("border-top-color") is "rgb(0, 0, 0)"
PASS document.defaultView.getComputedStyle(col5, null).getPropertyValue("border-top-width") is "0px"
PASS document.defaultView.getComputedStyle(table5, null).getPropertyValue("border-top-color") is "rgb(128, 128, 128)"
PASS document.defaultView.getComputedStyle(table5, null).getPropertyValue("border-top-width") is "2px"
PASS document.defaultView.getComputedStyle(tbody6, null).getPropertyValue("border-top-color") is "rgb(128, 128, 128)"
PASS document.defaultView.getComputedStyle(tbody6, null).getPropertyValue("border-top-width") is "0px"
PASS document.defaultView.getComputedStyle(table6, null).getPropertyValue("border-top-color") is "rgb(128, 128, 128)"
PASS document.defaultView.getComputedStyle(table6, null).getPropertyValue("border-top-width") is "2px"
PASS document.defaultView.getComputedStyle(col7, null).getPropertyValue("border-top-color") is "rgb(0, 0, 0)"
PASS document.defaultView.getComputedStyle(col7, null).getPropertyValue("border-top-width") is "0px"
PASS document.defaultView.getComputedStyle(table7, null).getPropertyValue("border-top-color") is "rgb(128, 128, 128)"
PASS document.defaultView.getComputedStyle(table7, null).getPropertyValue("border-top-width") is "2px"

