From a pure source code perspective, "why" may be hard to answer.
In the latest WebKit, there is no commentary (neither the GTK implementation nor the EFL one):
case VK_SPACE:
granularity = WebCore::ScrollByPage;
if (keyEvent.shiftKey())
direction = WebCore::ScrollUp;
else
direction = WebCore::ScrollDown;
break;
Rewind the clock back to NCSA Mosaic, no commentary:
case XK_space:
XtVaGetValues (win->scrolled_win, XmNverticalScrollBar,
(long)(&sb), NULL);
if (sb && XtIsManaged (sb)) {
XtCallActionProc (sb, "PageDownOrRight", event, params, 1);
}
break;
Go back further to Nexus (nee WorldWideWeb) circa 1992, where there was no keyboard navigation: navigation was done with the mouse.
WWWLineMode circa 1991 did not map space to anything. In WWW/LineMode/Implementation/www.c
, the function User_Selection
has no reference to space bar. However, it does map new line, that is the ENTER
key to next page!
Based on this review, the functionality was introduced in Mosaic. But, I could not find the source for Erwise or ViolaWWW, so maybe there.
Given this, the fact that Mosaic was popular on Windows, and Windows used an IBM AT keyboard, the explanation @JasonC provided seems most likely to me.