These were added back in 2004 (MediaWiki 1.2.4) by @gwicke with 0340509d5200. They've survived many refactors (split off from Skin into ChangesList etc) but are still there:
[includes/changes/ChangesList.php#L341](https://github.com/wikimedia/mediawiki/blob/445136b5bfe2887a8ded26e2db4329a9a231eb93/includes/changes/ChangesList.php#L341):
```lang=php
$diffLink = Linker::linkKnown(
$rc->getTitle(),
$this->message['diff'],
array( 'tabindex' => $rc->counter ),
$query
);
```
```lang=html
<div class="mw-changeslist"><h4>21 October 2015</h4>
<ul class="special"><li ..>(<a href tabindex="1">diff</a> | ..</li>
<li ..>(<a href tabindex="2">diff</a> | ..</li>
..
```
At least they can probably be given the same tabindex since browsers naturally spread sequential context anyway (similar to z-index).
This came up in an audit of tabindex use which affected the search bar in the Vector skin, where the JavaScript assigns it the highest known tabindex +1 ([source](https://github.com/wikimedia/mediawiki-skins-Vector/blob/bb251a5eaccf7ae7c86c567268998cbd750823cd/vector.js#L8)), which behaves a bit odd on Special:RecentChanges.
What is this tabindex for? Can the usecase be satisfied with a different solution?