| Line 116: |
Line 116: |
| | | | |
| | titleCell | | titleCell |
| − | :tag('div')
| + | :tag('div') |
| − | :addClass(args.titleclass)
| + | :attr('id', mw.uri.anchorEncode(args.title)) |
| − | :css('font-size', '114%')
| + | :addClass(args.titleclass) |
| − | :wikitext(addNewline(args.title))
| + | :css('font-size', '114%') |
| | + | :wikitext(addNewline(args.title)) |
| | end | | end |
| | | | |
| Line 360: |
Line 361: |
| | local res = mw.html.create() | | local res = mw.html.create() |
| | if border == 'none' then | | if border == 'none' then |
| − | res:node(tbl) | + | local nav = res:tag('div') |
| | + | :attr('role', 'navigation') |
| | + | :node(tbl) |
| | + | if args.title then |
| | + | nav:attr('aria-labelledby', mw.uri.anchorEncode(args.title)) |
| | + | else |
| | + | nav:attr('aria-label', 'Navbox') |
| | + | end |
| | elseif border == 'subgroup' or border == 'child' then | | elseif border == 'subgroup' or border == 'child' then |
| | -- We assume that this navbox is being rendered in a list cell of a parent navbox, and is | | -- We assume that this navbox is being rendered in a list cell of a parent navbox, and is |
| Line 370: |
Line 378: |
| | :wikitext('<div>') -- XXX: hack due to lack of unclosed support in mw.html. | | :wikitext('<div>') -- XXX: hack due to lack of unclosed support in mw.html. |
| | else | | else |
| − | res | + | local nav = res:tag('div') |
| − | :tag('table')
| + | :attr('role', 'navigation') |
| − | :addClass('navbox')
| + | :addClass('navbox') |
| − | :css('border-spacing', 0)
| + | :cssText(args.bodystyle) |
| − | :cssText(args.bodystyle)
| + | :cssText(args.style) |
| − | :cssText(args.style)
| + | :css('padding', '3px') |
| − | :tag('tr')
| + | :node(tbl) |
| − | :tag('td')
| + | if args.title then |
| − | :css('padding', '2px')
| + | nav:attr('aria-labelledby', mw.uri.anchorEncode(args.title)) |
| − | :node(tbl)
| + | else |
| | + | nav:attr('aria-label', 'Navbox') |
| | + | end |
| | end | | end |
| | | | |