Frameset/Frame Specification Amendment (HTML+CSS)

Frames are a great way for splitting a document into several distinct areas 
and for providing a dynamic, resizable, easy-to-use head/navigation/content 

The current HTML specification describes a rendering scheme that is 
insufficient in regard to control of frameset background, resp. frame gaps 
and borders. (E.g., it is currently not possible to eliminate the gap 
between frames in a frameset or to define a frame's border visualization.)

The assertions made in the current HTML5 specification result from 
algorithms put in place before CSS became a wide-spread method of adding 
presentation to content.

I'd like to suggest to amend the HTML/CSS specification on HTML <frameset> 
and <frame> elements in order to provide sufficient control over frame 
rendering to the web site editor.

My suggestions splits into following (independent and disjunct) suggestions:


*  "cols" and "rows" attributes should become deprecated
   in favour of following new attribute:

      flow  (horizontal|vertical) #IMPLIED


The number of rows/columns results from the number of frames contained 
within a frameset. There is no need to duplicate this information by using a 
separate attribute, which adds unnecessary ambiguity.

It is sufficient to define the direction of frame flow, either horizontally 
or vertically. The suggested "flow" attribute provides for this.

If flow="horizontal", frames within a frameset are aligned from left to 
right, equally distributing the available with amongst them.

If flow="vertical", frames within a frameset are aligned from top to bottom, 
equally distributing the available height amongst them.


*  Leave presentation information to CSS.

I.e.: Following frame attributes should become deprecated:

   -  frameborder
   -  marginwidth
   -  marginheight
   -  scrolling


The current specification leaves a gap defining the layout of frames. 
Instead of trying to fill these gaps, HTML should rely on CSS regarding 
frame layout.

The CSS properties for border and margin are self-explanatory. Scroll bar 
visibility should be defined using the CSS "overflow" property applied to 
the frame/frameset elements.


*  Changing the value of a frame's "noresize"
   attribute should not affect layout/presentation of frames.

Reason: Visual feedback on the availability of a resizing option should be 
the responsibility of CSS.

For functional specification, it is sufficient to specify that resizing is 
allowed and an appropriate NS/EW cursor will be displayed only if:

   a) The gap space is greater than 0
      - and -
   b) None of the affected frames' noresize attribute is
      being set.


I have added a PDF file to this suggestion report, trying to visualize the 
concept's details. It can be found here:

Axel Dahmen 

Received on Friday, 26 March 2010 14:26:01 UTC