here is what I usually do to make my asp.net sites accessible ( note : for DNN im still looking into the best way )
1. make sure that any basic page validates using a filter that rewrites the returned page so that it validates as xml strict or xml transitional )
2. make sure you choose the correct doctype
3. use semantic html , so if you need to make a list of items dont put in table put it in an unordered or a datalist depneding on the data you are using
4. dont use the label control, that way it always generates span tags, use a literal so you just generate the content and that literal you can encapulate into any tags h1, h2, h3 span div etc
5. use a repeater or datalist to be able to create just the html you want and mothing more.
6. if you use a datagrid for tabular data, either make a modified datgrid for accessible tables or use standard databgrid and rewrite it it the filter
7. put everythign in css usisng defined id's in the tags or classes
for dnn iif I ever have the time to realy dive intomodifying it th way I realy want it ;)
1. use a filter in the core to mod a bare page into xhtml sttrict or transitional
2. set the correct doctype
3. redo a nr of core modules more semantic, put links module, image module faq module ito an unordered list so its more accessible and you can modify this with javascript for more fancier version.
4. instead of the dnn label control make a special literal control eg. dnn:literal type="h3">text</dnn:literal ; this way you have a much broader use of the label control and you can keep accessible and semantic html so use the h1 h2 h3 tags for portal title moduletitle etc.
5. make an accessible datagrid that can be used better with modules. but use them wisely not everything needs to be in table
6. for menu dropdown and action and controlpanel use unordered list and css and maybe a bit of javascript.
http://www.nokiko.com the top icon menu is an unordered list with a bunch of CSS. so this could be a controlpanel easily