# Development Progress

This page provides an indication of the current status of various features and gives an idea of where future development will be aimed. Features are split up as follows:

- General
- Web standards
  - Important HTML features
  - CSS features
  - CSS properties
- Image support
- RISC OS specific standards
- NetSurf features

Last updated 05 March 2008

##

Title | Status | Notes
--- | --- | ---
Web standards | In progress | Most of HTML 4 and CSS 2.1 are implemented which enabled NetSurf to access most of the web, however, JavaScript is currently unimplemented. This means NetSurf currently lacks support for certain dynamic content.
User interface (RISC OS) | Nearly done | RISC OS interface is mature.
User interface (GTK) | In progress | The nsgtk user interface is sufficient to allow web browsing but currently lacks many features expected of a web browser.
Documentation | In progress | Much of the core functionality and RISC OS specific features are documented. There is very scant documentation for nsgtk.

## Web standards

Title | Status | Notes
--- | --- | ---
Cookies | Nearly done | User interface to handle invalid cookies not available.
CSS 1 | Nearly done |
CSS 2 | In progress |
CSS 3 | Just started | Some of the selectors have been implemented.
HTML 4 | Nearly done |
HTML 5 | Just started | An HTML 5 compliant parser is being developed.
HTTP 1.1 | Complete |
HTTP Authentication | Complete |
HTTPS | Complete |
DOM Level 0 | Just started | Core mostly complete.
DOM Level 1 | Just started | Core mostly complete.
DOM Level 2 | Just started | Core mostly complete.
DOM Level 3 | Just started | Core mostly complete.
JavaScript | Not started | Details on the User Information page.

### Important HTML features

Title | Status | Notes
--- | --- | ---
Forms | Nearly done | Don't work fully with Scale View.
Frames | Nearly done | Margin attributes are unimplemented. Frames affect back / forward navigation and history thumbnails.
Image Maps | Complete |
Lists | Nearly done |
Tables | Nearly done | Elements col, colgroup, rowgroup and caption not implemented. Extra space is divided equally among columns instead of in proportion with content width.

### CSS features

Title | Status | Notes
--- | --- | ---
Selectors | Nearly done | CSS 1 and CSS 2 selectors implemented. A few CSS 3 selectors are implemented too.
Pseudo-classes | Not started |
Pseudo-elements | Not started |
Media types | Just started | NetSurf doesn't handle @media.
@import | Complete |
Cascade | Nearly done | !important is not implemented. There is no user stylesheet.

### CSS properties

Title | Status | Notes
--- | --- | ---
background-attachment | Not started |
background-color | Nearly done | Some problems with inlines.
background-image | Nearly done | Some problems with inlines.
background-position | Nearly done | Some problems with inlines.
background-repeat | Nearly done | Some problems with inlines.
background (shorthand) | Complete | Dependent on the status of individual properties.
border-collapse | Nearly done | Some problems with inlines.
border-color | Nearly done | Some problems with inlines.
border-spacing | Nearly done | Some problems with inlines.
border-style | Nearly done | Some problems with inlines.
border-[top|right|bottom|left] | Nearly done | Some problems with inlines.
border-*-color | Nearly done | Some problems with inlines.
border-*-style | Nearly done | Some problems with inlines.
border-*-width | Nearly done | Some problems with inlines.
bottom | Complete |
caption-side | Not started |
clear | Nearly done | Some issues with floats remain.
clip | Not started |
color | Complete |
content | Not started |
counter-increment | Complete | Can't be used until content property is implemented.
counter-reset | Complete | Can't be used until content property is implemented.
cursor | Complete |
direction | Not started |
display | Complete |
empty-cells | Not started |
float | Nearly done | Some issues with floats remain.
font-familial | Nearly done | Only generic font types are recognised, not specific font names.
font-size | Complete |
font-size-adjust | Not started |
font-stretch | Not started |
font-style | Complete |
font-variant | In progress | Small caps not done.
font-weight | Complete |
font (shorthand) | Complete | Dependent on the status of individual properties.
height | In progress | Percentage heights aren't implemented.
left | Complete |
letter-spacing | Not started |
line-height | Not started |
list-style-image | Complete |
list-style-position | Not started |
list-style-type | Nearly done |
list-style (shorthand) | Complete | Dependent on the status of individual properties.
margin-[top|right|bottom|left] | Nearly done | Some issues with inlines.
margin (shorthand) | Complete | Dependent on the status of individual properties.
marker-offset | Not started |
marks | Not started |
max-height | Not started |
max-width | Not started |
min-height | Not started |
min-width | Not started |
orphans | Not started |
outline-color | Not started |
outline-style | Not started |
outline-width | Not started |
outline (shorthand) | Not started |
overflow | Not started |
padding-[top|right|bottom|left] | Nearly done | Some issues with inlines.
padding (shorthand) | Complete | Dependent on the status of individual properties.
page | Not started |
page-break-[after|before|inside] | Not started |
position | In progress | Fixed position not implemented<./td>
quotes | Not started |
right | Complete |
size | Not started |
table-layout | Not started |
text-align | Complete |
text-decoration | Complete |
text-indent | Complete |
text-shadow | Not started |
text-transform | Complete |
top | Complete |
unicode-bidi | Not started |
vertical-align | In progress | Only implemented for table cells.
visibility | In progress |
white-space | In progress |
widows | Not started |
width | Complete |
word-spacing | Not started |
z-index | Not started |

## Image support

Title | Status | Notes
--- | --- | ---
Artworks (RISC OS) | Complete | Requires AWRender.
BMP | Complete |
Drawfile (RISC OS) | Complete |
GIF | Complete |
ICO | Complete |
JNG | Complete |
JPEG | Complete |
MNG | Nearly done | Interactive features aren't supported.
PNG | Nearly done | Gamma correction is not correct for PNGs with alpha channels.
Sprite (RISC OS) | Complete |
SVG Tiny (RISC OS) | In progress | Via Libsvgtiny.
SVG (GTK) | Complete | Via rsvg.

## RISC OS specific standards

Title | Status | Notes
--- | --- | ---
Acorn URI Protocol | Complete |
Ant URL Protocol | Complete |
Plugin Protocol | Nearly done | Incomplete implementation.

## NetSurf features

Title | Status | Notes
--- | --- | ---
Advertisement Blocking | Complete |
Buffered Rendering Options | Complete | Substantially improves the display of content. Details in the User Guide (RISC OS).
Configuration (RISC OS) | Complete |
Configuration (GTK) | Nearly done |
Disc Cache | Not started |
Dithering (RISC OS) | Complete | Gives improved rendering in sub true colour screen modes. Both simple dithering and error diffusion available.
Documentation (RISC OS) | Nearly done | See the contents page.
Documentation (GTK) | Just started | Currently only build instructions exist for nsgtk. There is no user guide.
Downloads (RISC OS) | Complete | Following a link to a file NetSurf can't render opens the download dialogue box.
Downloads (GTK) | Just started |
Find Text (RISC OS) | Nearly done | Doesn't find phrases if they are split across lines.
Find Text (GTK) | Not started |
Full Save (RISC OS) | Nearly done | Save pages with CSS files and images. Doesn't rewrite URLs for CSS background images.
Full Save (GTK) | Not started |
History - Global (RISC OS) | Nearly done | Details in the User Guide.
History - Global (GTK) | Just started | Some support but very incomplete.
History - Local (RISC OS) | Complete | Details in the User Guide.
History - Local (GTK) | Nearly done |
Hotlist / bookmarks (RISC OS) | Nearly done | Details in the User Guide.
Hotlist / bookmarks (GTK) | Not started |
Interactive Help (RISC OS) | Nearly done |
Interactive Help (GTK) | Nearly done | Extensive tool tips for GUI but none for rendering area.
Memory Cache | Complete |
Printing (RISC OS) | In progress | Printing on RISC OS 5 doesn't work, due to lack of support in the Font Manager and printer drivers. Details on the RISC OS User Information page.
Printing (GTK) | Not started | Started to think about it. Needs Cairo backend updating.
Proxy Support | In progress | Protocols other than HTTP are incorrectly proxied.
Save as Drawfile (RISC OS) | Nearly done | Embedded drawfiles aren't exported when saving page as Draw. (Draw is a RISC OS vector graphics format.)
Save as Text (RISC OS) | In progress | Some issues with spacing out of text.
Save as Text (GTK) | Not started |
Scale View (RISC OS) | Complete | Web pages and images can be scaled up and down.
Text Selection (RISC OS) | In progress | Text selection in text areas is incomplete.
Text Selection (GTK) | Not started | The core should take care of it once the nsgtk UI exposes drag events.
Themes (RISC OS) | Complete | Themes are available from the NetSurf themes page.
Themes (GTK) | In progress |
Toolbar Customisation (RISC OS) | Complete | Toolbars can be customised to show the icons you want, in the order you want. Details in the User Guide.
Toolbar Customisation (GTK) | Not started |
Unicode Font Support (RISC OS) | Nearly done | Details on the RISC OS User Information page.
Unicode Font Support (GTK) | Complete |
URL Completion | Complete | When typing a URL into the URL bar, NetSurf will display suggestions for the full address.
View Source (RISC OS) | Complete | Press F8 or Page > View source on main menu.
View Source (GTK) | Not started |