I would like to expand first step of creating a widget:
1. Make a widget. This step may seem obvious, but the first and most important step is actually creating a working widget.
- Use standards
Check if you widgets actually have valid HTML and CSS. There are no more excuses about crappy hacks for Internet Explorer. - Use modern standards
Check out standards that Opera already supports. Use modern standards like SVG, WebForms 2, HTML 5 (canvas), CSS 2.1 and 3 (selectors), XSLT, XPath, etc. It can make shorter development time and improve user experience. - Check accesibility
Create widget as it will be standard web page. Care about disabled people – provide alt attributes to images, use labels for form fields, check if your colors are contrast enough, etc.
P.S. Some useful examples how to use WebForms 2.
I will add to this post more tips as they come.